Sprite Kit:如何移除底角的调试标签?

5
我使用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;

2
你尝试过使用 "spriteView.showsDrawCount=NO" 吗? - Pooja M. Bohora
4个回答

15

-(id)initWithSize:(CGSize)size并不是你这么做的方法。我猜你是在SKScene的子类中这样做的。你应该在ViewContoller中这样做。去那里,在viewWillLayoutSubviews中找到它。只需要找到你的代码中某个地方这样做:

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

只需将这两行代码注释掉或者执行以下操作:

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

希望这能帮到你.. :)


这应该可以工作。我也正在使用SpriteKit模板开发游戏,这是我隐藏调试标签的方法。在我的情况下它起作用了。也许原帖作者在其他地方将它们设置回“YES”了... - Nicolas Miari
@nicolasmiari > 我想是这样。 - Rashad
1
@poojaM.bohora > 不,他是在SKScene的子类中做这个。不是在viewController中。 - Rashad
@Rashad:是的,把代码放在ViewController里面是诀窍。我一直试图像你指出的那样在SKScene的子类中使用它。谢谢。 - MSU_Bulldog

2
在Swift中,您需要进入GameScene.swift,查看"skView.showsFPS"和"skView.showsNodeCount",将它们从"true"修改为"false"。这样,底部的节点和FPS会被移除!祝好运!

1
您可以使用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))
}

1

spriteView.showsDrawCount=NO 设为 NO 并检查一次。我认为你还没有将它设为 NO。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接