0

我正在尝试使用 SpriteKit 制作一个游戏,其中主角射击“绳子”并在关卡中摆动(想想蜘蛛侠)。我制作绳索并将其连接到玩家和不同的精灵上没有问题,但我真的不知道如何进行“射击”部分。

我目前的绳索与此类似(https://www.youtube.com/watch?v=7jWdcbmnmKQ&hd=1),其中我有几个单独的部分使用SKPhysicsJointPin. 我尝试了几种不同的方法来射击绳索,都使用applyImpulse/ForceSKActions,但没有一个能顺利进行。

总结一下:
- 创建可以在特定方向延伸的绳索的最佳实践是什么?

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

4

2 回答 2

1

通用指针:

  • 以你需要它“飞”的方式射​​击一个物理体(子弹)
  • 在 didSimulatePhysics 中,将子弹的位置分配给绳索的第一个节点

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

随着子弹和武器/玩家之间距离的增加,您可能需要添加更多的绳索段,否则绳索可能在子弹飞行路径的开始处过于紧密地挤在一起,导致物理行为异常。尽管在飞行中添加绳索段本身可能会导致问题。

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

于 2014-08-26T10:25:07.310 回答
0

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

于 2014-08-26T10:23:37.113 回答