【发布时间】:2014-07-16 17:11:19
【问题描述】:
我正在用 Cocos2d - Chipmunk - Spritebuilder 构建一个 IOS 游戏。我需要让一个角色绕着一个点旋转,而我在用真实物理实现轨道时遇到了一些困难。 到目前为止,我已经尝试了两种方法,一种是创建一个从玩家到行星的距离关节,然后对玩家施加 90 度的力,在距离关节的末端和绘制的假想线之间创建一个角度与它成 90 度角。他疯狂地四处走动,这种方法对我不起作用。
然后我尝试在距离行星半径的圆周上计算 180 个点(这是检测和实施其对玩家的影响的界限) - 然后在计划的更新方法中 [character.physicsbody applyForce:nextCircumferencePoint];这是行不通的,因为他没有完全遵循这条路,而且离这条路很远。我在想我还需要对这颗行星施加一个引力,这会使他绕着它转。虽然我不知道如何计算那个力,应用它,或者它是否会有所帮助。
第三种永远不会起作用但用于测试的方法是将他的位置设置为下一个圆周点。他确实在轨道上运行,但任何碰撞都不起作用(例如,如果一块太空垃圾挡住了他的路。)他只会被定位在任何其他物体的正上方。如果您不需要碰撞,这个世界很棒,正在编写自己的物理引擎。这不是一种优雅的做事方式,所以会避免它。
请更正我已经做过的任何事情并告诉我它是如何工作的,或者阐明其他选项以及如何实施它们。
【问题讨论】:
标签: cocos2d-iphone gravity orbital-mechanics