创造一条延伸绳索'

时间:2014-08-26 10:13:18

标签: ios objective-c sprite-kit skphysicsbody skphysicsjoint

我正在尝试用SpriteKit制作一个游戏,其中主角射出一条“绳子”并在水平上挥动(Think spiderman-ish)。我没有问题制作绳子并将它连接到播放器和不同的精灵但我真的不知道如何去拍摄“射击”部分。

我当前的绳索与此类似(https://www.youtube.com/watch?v=7jWdcbmnmKQ&hd=1)构建,我使用SKPhysicsJointPin连接了几个单独的部分。我已经尝试了几种不同的方法来拍摄绳索,包括applyImpulse/ForceSKActions,但都没有顺利进行。

总结一下:
  - 创建可沿特定方向延伸的绳索的最佳做法是什么?

我对正确方向的一般指示很好,因为这是所有要学习的东西,我不认为我真的需要完整的代码。

2 个答案:

答案 0 :(得分:1)

一般指针:

  • 以你需要的方式拍摄一个物理身体,然后飞去" (子弹)
  • 在didSimulatePhysics中将子弹的位置分配给绳索的第一个节点

理论上,这应该在射击时延长绳索,而不会影响子弹的轨迹。

当子弹和武器/玩家之间的距离增加时,您可能需要添加更多的绳段,否则绳子可能会在子弹的飞行路径开始时挤得太紧,导致物理行为不料。虽然在飞行中添加绳索段可能会导致问题。

一种解决方案可能是禁用绳子的物理,直到达到一定距离或子弹击中"一些东西。在此之前,绳索可以被认为是直线,绳索节点相应地沿着子弹和武器之间的直线定位。

答案 1 :(得分:0)

不要使用物理引擎来移动伸展绳索(applyImpulse),而是尝试以固定速度将绳索的末端直线移动直至撞到目标。只是一个想法!