Pygame で衝突を検出する
-
Pygame で
rect.collidepoint()
を使用して衝突を検出する -
Pygame で
rect.colliderect()
を使用して衝突を検出する -
Pygame で
rect.collidelist()
またはrect.collidelistall()
を使用して衝突を検出する -
Pygame で
rect.collidedict()
またはrect.collidedictall()
を使用して衝突を検出する
Pygame で衝突を検出する方法はいくつかあり、この記事ではそのいくつかを取り上げます。
ここに表示されるコードは、有効な Pygame ウィンドウの完全なコードではありません。 必要最小限のフレームワークに興味がある場合は、この 記事 を参照してください。
Pygame で rect.collidepoint()
を使用して衝突を検出する
rect
クラスの collidepoint()
メソッドを使用すると、指定した点が rect
内にあるかどうかをテストできます。 これは多くの場合に役立ちます。たとえば、一部の UI 要素にカーソルを合わせたときに外観を変更したい場合などです。
この記事では、機能について説明し、それを使用してボタンを作成しました。 関数に x
と y
座標を別々に提供するか、タプルやリストのような iterable で提供することができます。
構文:
rect.collidepoint(x, y)
rect.collidepoint((x, y))
Pygame で rect.colliderect()
を使用して衝突を検出する
rect
クラスのこの関数を使用して、別の rect
の一部がその範囲内にあるかどうかをテストできます。 したがって、この関数に別の rect
を指定する必要があります。
構文:
rect.colliderect(rect)
Pygame で rect.collidelist()
または rect.collidelistall()
を使用して衝突を検出する
rect.collidelist()
メソッドを使用することもできます。このメソッドは、rects
のリストを受け取り、メインの rect
と交差するかどうかをテストします。 この関数は、rect
と衝突する最初の rect
インデックスを返します。
rect.collidelistall()
メソッドは似ていますが、重要な違いが 1つだけあります: メインの rect
と衝突する rects
のすべてのインデックスを含む配列を返します。
構文:
rect.collidelist([rect1, rect2, ...])
rect.collidelistall([rect1, rect2, ...])
Pygame で rect.collidedict()
または rect.collidedictall()
を使用して衝突を検出する
これらのメソッドは上記のメソッドとほぼ同じですが、メインの rect
と衝突する rects
のキーと値のペアを返します。
構文:
rect.collidedict({
'rect1': rect1,
'rect2': rect2,
...
})
rect.collidedictall({
'rect1': rect1,
'rect2': rect2,
...
})
Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.
GitHub