2016-12-11 22 views
0

スプライトのコーナーを基準に2つの座標(X、Y)のセットが必要です。代わりにCOORDSの1セットの 、さらに状況についてはスプライトpygameのスプライトの位置に基づいて、どのように座標軸を取得できますか?

の真ん中で:

のは、私はスプライトにブリットした場合pygameのウィンドウ10pxのは、それが10pxの10pxの です*作りましょう* 10px、5,5で。左上、右下の値をどのように取得できますか?

+0

あなたがそれらを計算するようにサイズと位置を維持するために、既にpygame.Rectを使用をチェックするためのメソッドを持っていますか? Topleft =(5,5)およびbottomright =(5 + 10、5 + 10)=(15,15)。ブリッティング時には、トプルコーナーの座標を渡していることと**スプライトの中心ではないことに注意してください。 –

+0

あなたは 'rect'で' rect.width'/'rect.height'とそれ以降の' rect.center =(5,5) 'を設定することができるので、左上を計算する必要はありません。そして、それを再計算して正しい結果を得ます'rect.topleft'です。しかし、 'blit(image、rect)'を使うことができ、 'rect.topleft'を使う必要はありません。 – furas

+0

以下に答えた人として、組み込みのrectクラスがあなたの必要を満たすでしょう。 –

答えて

1

Spriteのrectプロパティは、このために理想的である。

mysprite.rect.topleft =>(10、10)

mysprite.rect.bottomright =>(15、15)

pygameのRectオブジェクトが有用なのコレクション全体を持っています使用できる属性を処理します。完全なリストは、ドキュメントにあります。

http://www.pygame.org/docs/ref/rect.html

0

は、オブジェクトのサイズと位置を保つためにpygame.Rectを使用してください。あなたがイメージを持っている場合は

は、あなたはRECT

rect = image.get_rect() 

`としてそのサイズを取得することができ、その後、あなたはその位置

rect.center = (5, 5) 

を設定し、それを

blit(image, rect) 

をブリットすることができます

rect他にも便利な機能がありますリットルのプロパティ:leftrighttopleftcenterxcenterxなど

あなたは、画面

rect.center = screen_rect.center 

することができます同じように画面RECT

screen_rect = screen.get_rect() 

と中央の要素を取得することができますボタン矩形の中央のテキスト


rectも衝突

rect.colliderect(other_rect) 

rect.collidepoint(mouse_position) 

pygame.sprite.Spriteyour_sprite.rect

関連する問題