2016-07-05 8 views
-2

私はPython 2.7とpygameを使用して、OOPとスプライトクラスを使用して小惑星ゲームを作成しています。私は選手と小惑星を持っています。 spritecollideを使ってプレーヤーと任意の小惑星との衝突を検出すると、グループから小惑星が削除され、killを使用してプレーヤーを削除します。プレーヤーは画面から消えますが、まだ隠れています。他の小惑星が以前のどこかを通過すると、それは衝突を記録し、プレイヤーがまだそこにいるかのように消える。これは正しい動作ですか?どのようにプレイヤーを完全にゲームから取り除くのですか?それとも、ゲームフレームの外に移動するだけですか?Python OOP sprite.Sprite.killは実際にそれを削除します

+1

ようこそSOようこそ、最小、完全、および検証可能な例(MCVE)http://stackoverflow.com/help/mcveを示すコードを含めると、より良い回答が得られます。 – dbugger

答えて

1

the documentationから:

kill()

スプライトは、それを含むすべてのグループから削除されます。スプライトの状態については何も変わりません。このメソッドが呼び出された後、SpriteをGroupsに追加することを含め、引き続き使用することは可能です。

これは、プレイヤーを強制終了すると、すべてのスプライトグループからプレイヤーを削除するだけです。私はあなたがグループを使用してblitしたと仮定します。これは、あなたのプレイヤーがもう引かれない理由です。しかし、あなたのガメループのどこかで、特定の選手オブジェクトが小惑星と衝突していないかどうかをチェックすると、これは動作します。

どのように対処するかは、ご希望のゲームの動作によって異なります。 ゲームが終了するはずですか?その後、メインループを終了し、画面上にゲームを描きます。 プレイヤーは再生成する必要がありますか?次に、プレーヤーの位置をリセットし、プレーヤースプライトをそれぞれのグループに再度追加します。

関連する問題