7

ピグレットスプライトをピマンクボディにバインドして、ボディが回転している場合にスプライトも回転するようにするにはどうすればよいですか?

4

1 に答える 1

4

同期は組み込まれていないため、フレームごとに自分で行う必要があります。しかし、心配しないでください、それはとても簡単です。

体が形状の中央に配置されていて、画像が同じサイズである場合、必要なものが 2 つあります。まず、画像アンカーを半分のサイズに設定します。次に、更新メソッドで、同期するボディをループし、スプライトの位置をボディの位置に設定し、スプライトの回転を、度に変換されたボディの回転に設定します。モデルを 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

(ピムンクの作者です)

于 2012-10-27T23:52:28.330 に答える