我用Java制作了我的第一个游戏 – Snake,
它的主循环看起来像这样
while (true)
{
long start = System.nanoTime();
model.eUpdate();
if (model.hasElapsedCycle())
{
model.updateGame();
}
view.refresh();
long delta = (System.nanoTime() - start) / 1000000L;
if (delta < model.getFrameTime())
{
try
{
Thread.sleep(model.getFrameTime() - delta);
} catch (Exception e)
{
e.printstacktrace();
}
}
}
但是在我的项目的要求中有一个响应点,所以我需要将Thread.sleep()更改为其他内容,但我不知道如何以简单的方式执行此操作.
提前感谢任何建议.
最佳答案
我用Java完成了一两个简单的游戏并处理主游戏循环我使用了Swing Timer.计时器将允许您在提供的延迟过去后设置要触发的
ActionListener
.中间延迟将来自您的帧速率.最基本的用法如下:
Timer timer = new Timer(delay,listener);
timer.start();
这会将初始和中间延迟设置为相同的值.如果需要,您也可以将它们设置为不同的值,如下所示:
Timer timer = new Timer(delay,listener);
timer.setinitialDelay(0);
timer.start();
在上面的示例中,侦听器将在启动后立即触发,并在此后延迟.
原文地址:https://www.jb51.cc/java/437413.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。