0

我正在 Cocos2d - Chipmunk - Spritebuilder 中构建一个 IOS 游戏。我需要让一个角色绕着一个点旋转,而我在用真实的物理实现轨道时遇到了一些困难。到目前为止,我已经尝试了两种方法,一种是创建一个从玩家到行星的距离关节,然后对玩家施加 90 度的力,在距离关节的末端和绘制的假想线之间创建一个角度与它成 90 度角。他疯狂地四处走动,这种方法对我不起作用。

然后我尝试在距离行星半径的圆周上计算 180 个点(这是检测和实现其对玩家的影响的界限) - 然后在预定的更新方法中 [character.physicsbody applyForce:nextCircumferencePoint]; 这是行不通的,因为他没有完全遵循这条路,而且离这条路很远。我在想我还需要对这颗行星施加一个引力,这会使他绕着它转。虽然我不知道如何计算那个力,应用它,或者它是否会有所帮助。

第三种永远不会奏效但用于测试的方法是将他的位置设置为下一个圆周点。他确实在轨道上运行,但任何碰撞都不起作用(例如,如果一块太空垃圾挡住了他的路。)他只会被定位在任何其他物体的正上方。如果您不需要碰撞,这个世界很棒,正在编写自己的物理引擎。这不是一种优雅的做事方式,所以会避免它。

请更正我已经完成的任何事情并告诉我它将如何工作,或者阐明其他选项以及如何实施它们。

4

1 回答 1

0

在这里查看我的答案。它适用于 box2d,但您可以使用 Chipmunk 来完成。如果 bodyA 位置发生变化,则轨道将相同。您只需要根据需要更改身体运动的速度,只需增加平滑度并减慢更新方法即可。

于 2014-07-16T18:51:11.467 回答