gpt4 book ai didi

ios - SpriteKit 加载新场景但 Sprite 立即掉落

转载 作者:行者123 更新时间:2023-11-29 00:49:13 27 4
gpt4 key购买 nike

我正在关注此 ( https://www.raywenderlich.com/100560/video-tutorial-how-to-make-a-game-like-flappy-bird-in-swift-part-6-collision-detection) 视频教程系列以了解 SpriteKit,但是使用 Xcode 7.2 似乎存在一个错误,在该错误中,在 Sprite 掉落后,用户点击屏幕并调用 switchToNewGame,但是 Sprite 立即掉到地上,我不明白为什么。下面是 switchToNewGame 和这个要点中的完整代码:https://gist.github.com/gesabo/2e585f22c2860af13e099590a2e00e47

 func switchToNewGame() {
runAction(popAction)
let newScene = GameScene(size: size)
let transition = SKTransition.fadeWithColor(SKColor.blackColor(), duration: 1.0)
view?.presentScene(newScene, transition: transition)
}

我认为这可能与 didMoveToView 中的 physicsWorld.gravity = CGVector(dx: 0, dy: 0) 这行有关,RW 使用它是因为他说他想要控制重力而不是 SpriteKit,但删除它似乎并没有影响这个问题。

最佳答案

他为什么不掉下来?您的默认 GameState 是 .Play,所以一旦您的场景加载,您的鸟就会开始掉落。现在,当您进行过渡时,您的场景正在运行,因此您的鸟可能会因此而进一步下降。

我会推荐

1) 将 gameState 更改为 play 以外的其他内容,然后在准备好时将其更改为 play

2) 在过渡期间暂停场景,查看 SKTransition 文档以达到您想要的效果

3) 使用dispatch_async(dispatch_get_main_queue()) 加载新场景,这样加载时间就不会影响场景时间。 (基本上,您从场景中获得的第一次更新时间可能会很长,从而扭曲过渡)

注意:从 9.3 开始,paused 变量有问题,出于某种原因它也会更改所有子项的暂停状态,因此在转换时,您可能会得到一些不希望的效果

关于ios - SpriteKit 加载新场景但 Sprite 立即掉落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38312792/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com