如何在cocos2d花栗鼠中应用轨道重力

时间:2014-07-16 17:11:19

标签: cocos2d-iphone gravity orbital-mechanics

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

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

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

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

1 个答案:

答案 0 :(得分:0)

查看我的回答here。它适用于box2d,但您可以使用Chipmunk。如果bodyA位置发生变化,轨道将是相同的。您只需根据需要改变身体移动速度,只需增加平滑度并减慢更新方法。