我和我的一个朋友正在开发一款游戏,基本上,我们设置了一个碰撞箱,如果我们的角色(蜘蛛)击中它,角色就会失去健康。
因为我们使用了for循环,所以不可避免的会发生,玩家一个一个地失去生命值,但速度如此之快,人眼看不到。因此,我们需要为玩家每 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 次(作为球员的健康)。然后我们有一个 if 查看生命值是否低于 0,设置回 0,这样玩家就不会得到负生命值。如果它不低于 0,我们执行 else 并减去 1 生命值。但正如我所说,这运行得太快了。
有什么帮助吗?