在 iOS 中使用 Swift 创建线性运动
Create linear motion with Swift in iOS
我想做的事情看起来很简单,但我正在努力让它发挥作用。我正在创建一个简单的 SpriteKit 游戏,类似于 FlappyBird。主角保持垂直静止,而用户控制其水平运动。那部分没问题。与此同时,其他游戏元素应该以恒定的速度垂直移动。我需要检测接触,但不需要对接触做出物理反应(移动元素在接触时消失,或者接触导致游戏结束)。
我试过使用 physicsBody.velocity,但结果不稳定。从概念上讲,这是我想要的方法,因为我想随着游戏的进行控制速度、加速或减速。
我也尝试过使用 Actions,效果还不错,但是要创建连续的动作很有挑战性,而且很难想象如何使用 Actions 来加速和减慢动作。我最好的结果是 SKAction.sequence,但很难协调多个元素同步移动。
任何线索将不胜感激。
您可以创建主机节点 - world: SKNode
来控制所有移动对象 - 只需将它们添加为子节点即可。并使用该节点来统治世界 – 设置 world.speed = 0.0
停止所有 SKActions
,world.speed = 2.0
以两倍的速度移动它们
我想做的事情看起来很简单,但我正在努力让它发挥作用。我正在创建一个简单的 SpriteKit 游戏,类似于 FlappyBird。主角保持垂直静止,而用户控制其水平运动。那部分没问题。与此同时,其他游戏元素应该以恒定的速度垂直移动。我需要检测接触,但不需要对接触做出物理反应(移动元素在接触时消失,或者接触导致游戏结束)。
我试过使用 physicsBody.velocity,但结果不稳定。从概念上讲,这是我想要的方法,因为我想随着游戏的进行控制速度、加速或减速。
我也尝试过使用 Actions,效果还不错,但是要创建连续的动作很有挑战性,而且很难想象如何使用 Actions 来加速和减慢动作。我最好的结果是 SKAction.sequence,但很难协调多个元素同步移动。
任何线索将不胜感激。
您可以创建主机节点 - world: SKNode
来控制所有移动对象 - 只需将它们添加为子节点即可。并使用该节点来统治世界 – 设置 world.speed = 0.0
停止所有 SKActions
,world.speed = 2.0
以两倍的速度移动它们