已经为此苦苦挣扎了几天,很难在网上找到代码示例。
我正在制作一个自上而下的游戏,并且无法让玩家在按键上移动。目前我正在使用add_force
或add_impulse
向一个方向移动播放器,但播放器并没有停止。我已经阅读了有关使用空间和玩家之间的表面摩擦来模拟摩擦的信息,这就是它在tank.c演示中的实现方式。
但是,我对 API 的理解还不够,无法将此代码从花栗鼠移植到 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 标签)。