我刚开始使用 SpriteKit 并遇到了一个问题:
我想要一个对象,我称之为 playerController,它跟随玩家的触摸和冰球,它可以被控制器击中,并且在这种情况下会反弹控制器。
不知何故,就像一个 AirHockey 游戏。
我构建了 2 个具有纹理和物理特性的 SKNode,因此如果重力开启或控制器以某种速度移动,它们会正确地相互反弹。
但是,如果控制器通过以下动作移动,冰球不会反弹。
SKAction *moveTo = [SKAction moveTo: CGPointMake(touch.position.x ,touch.position.y) duration: 0.1];
[self.controllerPlayerOne runAction: moveTo];
为什么?我已经在文档和几个教程中进行了搜索,但没有一个解决我的问题。也许这是 SpriteKit 开发人员想要的,但是在这种情况下如何实现跟随触摸呢?
希望有人可以提供帮助。
编辑:
目前,我通过将控制器位置设置为触摸位置并在每次触摸移动时使用触摸的最后和当前位置计算速度来获得控制器圆盘行为。
这工作得很好。