1

プレイヤーと敵のクラスが単なるオブジェクトである単純なゲーム エンジンを既に構築しています。
衝突をチェックし、一般的にそれらをより適切に管理できるように、それらをスプライトにしたいと思いますが、これを行う方法の良い例を見つけることができないようです...
プレーヤーと敵の両方のクラスを拡張しましたpygame.sprite.Spriteクラスを拡張します。
しかし、2つの間の衝突を確認した
ところ、2つのクラスにはrects(長方形)が必要であると言われました。

私はこれを行う方法を知りません...

4

1 に答える 1

2

スプライトはオブジェクトです。必要なものはすべてスプライト クラスのフィールドとして既に含まれています。スプライトの境界矩形を明示的に設定する必要があります。

pygame ドキュメントから:

pygame.sprite.spritecollide 別のスプライトと交差するグループ内のスプライトを見つける pygame.sprite.spritecollide(sprite, group, dokill, collided = None): return Sprite_list

別のスプライトと交差するグループ内のすべてのスプライトを含むリストを返します。交差は、各スプライトの Sprite.rect 属性を比較することによって決定されます。

したがって、sprite.rect を、スプライトの衝突の基にしたい四角形に設定する必要があります。通常、スプライト イメージのサイズをコリジョン レクタングルとして使用できます。

s.image = pygame.image.load("sprite.png").convert() #load a sprite image
s.rect = b.image.get_rect() # set collision rectangle
于 2013-02-02T22:56:33.487 に答える