【发布时间】:2018-06-11 18:19:57
【问题描述】:
到目前为止,我正在为我 12 年级的计算机科学开发一款吃豆人游戏。
我想让怪物在游戏中自动移动。我正在为我的游戏使用 Slick2D 和 LWJGL。我的游戏中有一段代码可以控制蓝色怪物的移动位置。
if (bluePosX < 400) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
bluePosX++;
}
所以基本上我在屏幕上看到的是蓝色怪物自动朝着正确的方向移动。我唯一的问题是当我使用Thread.sleep(100); 时,它会延迟整个屏幕。我只是想延迟蓝色怪物在朝着正确方向移动之前应该等待多长时间。我如何只延迟蓝色怪物图像而不是整个屏幕?
【问题讨论】:
-
每个怪物一个线程,或者按截止日期排序的演员更新优先队列(其中“演员”是可以在屏幕上移动的东西),您可以在其中设置每个更新操作的截止日期将来。大概是第二种选择。正如我在之前的一个问题上所评论的,另一个关于“关注点分离”的有力论据。
-
欢迎来到“剥洋葱”的世界,即发现事情比你开始时想象的要多得多,也比你想象的要复杂。我为你为一个高中班级解决如此大的项目的决心鼓掌。祝你好运。
-
@JimGarrison 感谢您的评论!如果我使用 Java Swing Timer 会怎样?这行得通吗?
-
...Java Swing Timer?" - 这超出了我的专业领域(我自己更多的是后端/数据库人员)。实验....