【发布时间】:2010-12-29 09:23:59
【问题描述】:
我无法根据系统时间正确调用函数。我的主要目的是为我的“炸弹人”对象提供更好的运动效果。不幸的是,它的行为很奇怪。我相信有一个愚蠢的小错误,但由于失眠30小时我找不到。这是我的代码:
if (System.currentTimeMillis() % 600 <= 200) {
if (!gEngine.gMap.bomber.isImmune) {
gEngine.gMap.bomber.setImage("bomberman_up3.gif");
} else {
gEngine.gMap.bomber.setImage("bomberman_red_up3.gif");
}
} else if (System.currentTimeMillis() % 600 <= 400) {
if (!gEngine.gMap.bomber.isImmune) {
gEngine.gMap.bomber.setImage("bomberman_up2.gif");
} else {
gEngine.gMap.bomber.setImage("bomberman_red_up2.gif");
}
} else if (System.currentTimeMillis() % 600 >= 400)
{
if (!gEngine.gMap.bomber.isImmune) {
gEngine.gMap.bomber.setImage("bomberman_up1.gif");
} else {
gEngine.gMap.bomber.setImage("bomberman_red_up1.gif");
}
}
顺便说一句,我很确定奇怪不是关于 gif 图像的顺序。代码应每秒更改图像 3 次。如果你帮助我,也许我可以睡觉。 :)
提前致谢。
【问题讨论】:
-
setImage是如何实现的?假设您使用的是 Swing,您是否在 EDT 中,例如通过使用 SwingWorker.invokeLater()?
标签: java algorithm time conditional