BlueJ を使用して Java で単純なプラットフォーム ゲームを開発しています。
プログラミングがあまり得意ではないので、今後数週間にわたって、このプロジェクトの助けを求めるいくつかの質問を投稿します。ですから、迷惑にならないようにお願いします。親切に助けていただければ幸いです。
私のゲームには、ゲームを終了してステートメントをコンソールに出力する gameOver メソッドがあります。私が望むのは、プレイヤー スプライトが画面から「落ちた」ときにこのメソッドを呼び出すことです。
現在、画面の下部に長方形を配置して、ある種の危険 (水など) を表し、プレイヤーがそれに衝突すると、gameOver メソッドが呼び出されてゲームが終了します。ただし、プレイヤーが画面の特定の高さを下回った場合にゲームが終了することをお勧めします。
これは私のgameOverメソッドです(「Game」クラスから)-
/** End the game. */
public void gameOver()
{
world.terminate();
isOver = true;
}
これは私のプレイヤー スプライトです (現在、ポリゴンを使用して描画されています)-
super(Utils.createPolygon(170, 102,
155, 118, 137, 118, 151, 134, 146,
140, 167, 140, 170, 135, 174, 140,
193, 140, 188, 134, 202, 118, 186,
118, 170, 102));
setColor(new Color(254, 167, 184));
これは、プレイヤーが敵と衝突したときにゲームを終了させるコードです ('Enemy' クラスから、同様のコードが Hazard クラスでも使用されます)。
if (e.contact.involves(player) && (player.getLives() < 1)) {
System.out.println("YOU ARE DEAD!");
game.gameOver();
}
プレーヤーのスプライトが画面の特定の座標を下回ったり超えたりしたときに gameOver メソッドを呼び出す同様の、または少なくとも単純なソリューションが必要です。
これを達成するために何をすべきかについてのアイデアを提供するために、サンプル/サンプルコードと、それを理解するのに役立つコメントを親切に提供していただければ幸いです。
どうもありがとうございました。あなたの答えを楽しみにしています。