古典的なアーケードゲームArkanoidを作ろうとしていますが、ボールとレンガの衝突に問題があります。現在、私はちょうど(ポンのように)古典的な衝突を使用しています:パイゲームのボールと矩形の衝突
def colision(self, objetivo):
if self.rect.colliderect(objetivo.rect):
self.speed[1] = -self.speed[1]
def colision2(self, objetivo):
if self.rect.colliderect(objetivo.rect):
self.speed[0] = -self.speed[0]
私が持っている問題は、ボールがレンガの異なる部分に当たると、時にはそれが間違った道をバウンスし、「食べる」終わるということですレンガ以上のもの。私はボーダーを追加したので2つの異なるタイプの衝突を使用していますが、それらも一緒にバウンスさせていますが、どのようにしてレンガのどちら側がヒットしたかを認識させる方法を知らないのでcolision1
またはcolision2
側。
レンガの側面に識別子を追加して、衝突が垂直か水平かを確認してください。あるいは、適切な2D衝突モデルを実装する場合は、衝突の方向を気にする必要はありません。 – xvan
識別子を追加して確認する方法の例を教えてもらえますか?また、私は適切な2Dコリジョンモデルを作ることができますか? –