我如何将一个Pyglet精灵与一个Pymunk形状绑定,以便它们一起旋转?

如何将一个pyglet精灵绑定到一个pymunk主体,这样如果主体正在旋转,精灵也会旋转?


没有内置的同步功能,因此您必须在每个框架上进行同步。 但不要担心,这很容易。

如果你的身体位于形状/形状的中间,并且图像尺寸相同,则需要两件事情。 首先,将图片定位点设置为其大小的一半。 然后在你的更新方法中,你循环你想要同步的物体,并将精灵位置设置为身体位置,精灵旋转将身体旋转转换为度数。 您可能还需要将其旋转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的作者)

链接地址: http://www.djcxy.com/p/65249.html

上一篇: How do I bind a Pyglet sprite with a Pymunk shape so they rotate together?

下一篇: Options page for Firefox addon using the Add