在pymunk中自上而下摩擦
一直在苦苦挣扎这几天,很难在网上找到代码示例。
我正在制作一个自上而下的游戏,并且无法让玩家按下按键。目前我正在使用
add_force
或add_impulse
向一个方向移动玩家,但玩家不会停止。
我已经阅读过使用空间和播放器之间的表面摩擦来模拟摩擦,这里是如何在tank.c演示中完成的。
但是,我不太了解API足以将此代码从chipmunk移植到pymunk中。
cpConstraint *pivot = cpSpaceAddConstraint(space, cpPivotJointNew2(tankControlBody, tankBody, cpvzero, cpvzero));
到目前为止,我有一些看起来像这样的东西:
class Player(PhysicalObject):
BASE_SPEED = 5
VISIBLE_RANGE = 400
def __init__(self, image, position, world, movementType=None):
PhysicalObject.__init__(self, image, position, world)
self.mass = 100
self.CreateBody()
self.controlBody = pymunk.Body(pymunk.inf, pymunk.inf)
self.joint = pymunk.PivotJoint(self.body, self.controlBody, (0,0))
self.joint.max_force = 100
self.joint.bias_coef = 0
world.space.add(self.joint)
我不知道如何将空间/玩家的约束添加到空间。
(需要1500+代表的人为此问题创建一个pymunk标签)。
没有找到相关结果
已邀请:
2 个回复
鞘垒飘
根据您是否向args发送一个或两个参数,它将使用C接口中的cpPivotJointNew或cpPivotJointNew2方法来创建关节。这两种方法的区别在于cpPivotJointNew需要一个轴点作为参数,而cpPivotJointNew2需要两个锚点。所以,如果你发送一个Vec2d pymunk将使用cpPivotJointNew,但如果你发送两个Vec2d它将使用cpPivotJointNew2。 完整的PivotJoint构造函数文档在这里:PivotJoint构造函数文档
焙恍挝厂熄