如何将pyglet精灵绑定到pymunk体上,这样如果体旋转,精灵也会旋转?
答案 0 :(得分:4)
没有内置的同步功能,因此您必须在每个帧上自行完成。但不要担心,它很容易。
如果您的身体位于形状/形状的中间,并且图像大小相同,则需要两件事。首先,将图像锚点设置为其大小的一半。然后在你的更新方法中循环你想要同步的物体,并将精灵位置设置为身体位置,并将精灵旋转设置为转换为体度的体旋转。您可能还需要将其旋转180度(如果您的模型被翻转)和/或反转旋转。
代码
img = pyglet.image.load('img.png')
img.anchor_x = img.width/2
img.anchor_y = img.height/2
sprite = pyglet.sprite.Sprite(img)
sprite.body = body
def update(dt):
sprite.rotation = math.degrees(-sprite.body.angle)
sprite.set_position(sprite.body.position.x, sprite.body.position.y)
有关完整示例,请查看我创建的示例:https://github.com/viblo/pymunk/blob/master/examples/using_sprites_pyglet.py
(我是pymunk的作者)