2012-10-24 15 views

答えて

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

(イムpymunkの作者)

+0

'+ 180'は本当にあるはずです?私はそれなしでより良い結果を得る。 – Flimm

+0

モデルが上下が逆の場合のみ。この例では、スプライトは三角形に対して上下が逆になっているため、回転する必要があります。しかし、通常、あなたはそれを必要としません。それがなければもっと明確になっていたはずです。 – viblo

関連する問題