Sprite Kit:删除底角的调试标签

Posted

技术标签:

【中文标题】Sprite Kit:删除底角的调试标签【英文标题】:Sprite Kit: Remove debugging label at bottom corner 【发布时间】:2014-04-17 05:22:11 【问题描述】:

我使用 Sprite Kit 开发了一个 ios 应用程序。任何使用 Sprite Kit 开发过 iOS 游戏的人都知道底角带有调试信息的标签。我试图删除底角的调试信息,它给出了节点数和 fps。 (例如 1 个节点 60.0 fps)

我在.m 文件中的-(id)initWithSize:(CGSize)size 方法中尝试了以下代码,但它似乎没有任何作用。这是删除调试标签的正确代码还是有更好的方法来删除标签?

SKView *spriteView = (SKView *) self.view;
spriteView.showsNodeCount = NO;
spriteView.showsFPS = NO;

【问题讨论】:

你试过“spriteView.showsDrawCount=NO”吗? 【参考方案1】:

-(id)initWithSize:(CGSize)size 不是您执行此操作的方法。我猜你是在SKScene 的子类中这样做的。您应该在ViewContoller 中进行操作。转到viewWillLayoutSubviews 中的ViewController。只需在代码中的某个地方找到您执行此操作的地方:

skView.showsFPS = YES;
skView.showsNodeCount = YES;

只需注释这两行或这样做:

skView.showsFPS = NO;
skView.showsNodeCount = NO;

希望这会有所帮助.. :)

【讨论】:

这应该有效。我也在用 SpriteKit 模板开发一个游戏,这就是我隐藏调试标签的方式。它在我的情况下有效。也许原始海报将它们设置回 YES 其他地方...... @nicolasmiari > 我想是的。 @poojaM.bohora > 不,他在 SKScene 的子类中这样做。在 viewController 中没有。 @Rashad:是的,将代码放入 ViewController 是诀窍。正如您所指出的,我试图在 SKScene 的子类中使用它。谢谢。【参考方案2】:

在 Swift 中,你转到 GameScene.swift, 看看“skView.showsFPS”和“skView.showsNodeCount” 从“真”修复为“假”。 节点和 FPS 将在屏幕底部移除!祝你好运

【讨论】:

【参考方案3】:

设置spriteView.showsDrawCount=NO 并检查一次。我认为您没有将其设置为 NO。

【讨论】:

【参考方案4】:

您可以使用 DEBUG 编译器指令,因此此调试标签信息在开发过程中可见,但不会包含在 App Store 发布版本中。

// GameViewController.swift
override func viewDidLoad() 
    super.viewDidLoad()

    let scene = self.sceneManager.scene
    scene.gameDelegate = self

    let skView = self.view as! SKView
    skView.ignoresSiblingOrder = true

#if DEBUG
    skView.showsFPS = true
    skView.showsNodeCount = true
#endif

    skView.presentScene((scene as! SKScene))

【讨论】:

以上是关于Sprite Kit:删除底角的调试标签的主要内容,如果未能解决你的问题,请参考以下文章

Sprite Kit,删除 Sprite 以进行碰撞

使用 Swift 在 Sprite Kit 游戏中重置高分

Sprite kit:删除特定节点而不是所有节点

Sprite Kit:屏幕上的 SKSpriteNodes 计数

Sprite Kit:为所有场景只创建一次节点

如何在场景中放置场景 - Sprite Kit