私と私の友人はゲームに取り組んでおり、基本的に、キャラクターがヒットした場合 (クモ)、キャラクターが健康を失うヒットボックスを設定しています。
for ループを使用しているため、避けられないことが起こります。プレイヤーは 1 つずつ体力を失いますが、あまりにも速く人間の目には見えません。したがって、プレイヤーがクモを叩いている x 時間ごとに、タイマー、一時停止、または何かが必要です。コードは次のとおりです。
if (ResetEntities.spiderObj.intersects(ResetEntities.blueCharacterObj)) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i < 100; i++) {
if (ResetEntities.blueHealth < 0) {
ResetEntities.blueHealth = 0;
Frame.blueHealthLabel.setText("Health: "
+ ResetEntities.blueHealth);
} else {
ResetEntities.getBlueHealth(ResetEntities.blueHealth - 1);
Frame.blueHealthLabel.setText("Health: "
+ ResetEntities.blueHealth);
}
}
}
このコードには、交差をチェックする if ステートメントがあります。私はスクリプトをスリープさせようとしました (10 は信じられないほど速いことに気付きましたが、1000 は恐ろしく遅れるので、Thread#sleep
私が想像する方法ではありません)。次に、for ステートメントを 100 回実行します (プレイヤーの健康状態)。次に、ヘルスが 0 を下回ったかどうかを確認し、0 に戻して、プレイヤーが負のヘルスを取得できないようにします。0 未満でない場合は、else を実行してヘルスを 1 引きます。しかし、私が言ったように、これは速すぎて見ることができません。
何か助けはありますか?