重建Snake与Block中的物理

时间:2017-06-26 17:12:07

标签: sprite-kit

我是SpriteKit的新手,我正在尝试通过创建类似于流行的iOS游戏Snake vs Block的游戏来学习 (game screenshot )。 我不确定我是否能最有效地设置游戏物理。

我将块设置为受重力影响,而球节点则没有。 在touchesMoved方法中,我将球节点的位置设置为触摸的x位置(y永远不会改变)。

一旦检测到碰撞,将重力设置为零矢量,移除前导球并将最后一个球置于其位置。 移除块后,我恢复重力。

但是我不确定如何在比赛中保持几个球节点相互连接,并使它们跟随引导球的滞后位置。

对此有何建议?

1 个答案:

答案 0 :(得分:3)

您可以通过SKPhysicsJointPin将它们作为关节连接在一起。你基本上是制作绳索/链条,Box2d绳索有很多例子(SpriteKit物理学是Box2d)。

只需将最新的球作为针脚连接到底部:

enter image description here

除了我的答案之外,以下是一些参考资料:

将objC转换为swift(或多或少): https://objectivec2swift.com/#/home/converter/

(Github投影链接):https://www.youtube.com/watch?v=7jWdcbmnmKQ

http://www.waveworks.de/howto-make-hanging-chains-sprite-kit-physics-joints/

https://developer.apple.com/documentation/spritekit/skphysicsjoint