我和我正在研究一种游戏,基本上,我们有一个击中格设立在那里,如果我们的性格撞击它(蜘蛛),字符失去健康的朋友。游戏计时器延迟损害
因为我们使用一个for循环中,不可避免的发生了,玩家通过1失去他们的健康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
不是我想象的方式)。然后我们有一个运行100次的声明(作为球员的健康状况)。然后我们有一个如果看到健康是否低于0,回到0,所以玩家不能得到负面的健康。如果它不低于0,我们做其他的并且减去1生命值。但正如我所说,这跑得太快,看不到。
任何帮助?
您的代码是一种方法。尝试睡眠100L到200L毫秒。 – 2013-03-11 15:41:48
如果你想在'Java'游戏中设置'Timer',我建议你使用'javax.swing.Timer'而不是'Thread'。 – Rob 2013-03-11 15:45:31