0

我有一个用 Cocos2D 和 Chipmunk 构建的简单项目。到目前为止,它只是一个在地面上弹跳的球(身体、形状和精灵)(屏幕底部的静态线段)。

我实现了 ccTouchesBegan/Moved/Ended 方法来拖动球。我都试过了:

cpBodySlew(ballBody, touchPoint, 1.0/60.0f);

ballBody->p = cgPointMake(touchPoint.x,touchPoint.y);

虽然球确实跟随我的拖动,但它仍然受到重力的影响并且它试图下降(这会导致速度问题和其他问题)。

有谁知道在物理模拟进行时拖动活动物体的首选方式?我是否需要以某种方式停止模拟并在之后重新打开它?

谢谢!

4

2 回答 2

0

当您不使用 cpBodySlew() 时,您不会更新对象的速度。这就是为什么它会直接下降。

一个更好的方法是使用像官方演示那样的强制夹紧枢轴关节来实现鼠标控制。http://code.google.com/p/chipmunk-physics/source/browse/trunk/Demo/ChipmunkDemo.c#296

于 2010-05-02T17:05:12.163 回答
0

暂时将尸体移出空间。

如果您希望物体在释放时具有惯性,那就另当别论了。最干净的方法是在球和一个在手指控制下移动的临时传感器主体之间连接一个相当硬的弹簧。当您用手指松开时,球将保留在您拖动它时它所具有的任何运动学特性。在这种情况下,请务必不要将球从空间中取出。

于 2010-05-01T13:13:30.177 回答