利用三角洲时间改善运动

时间:2014-01-12 18:57:14

标签: java swing timer timedelta

我查了很多关于如何使用delta时间的线程,我无法弄明白。

我想让我的家伙每次运行游戏时都以恒定的速度移动。

所以我有:

timer = new Timer(9, this);
timer.start();
then the paint method.

我尝试在paint方法的开头做一个开始时间,然后在结束时做一个当前时间。如何让它影响计时器的速度或玩家移动的距离。我已经尝试将时间增量乘以增量到x。 nHeroX = dx * deltaTIme;

我觉得这很简单我只需要有人直接告诉我该怎么做。

2 个答案:

答案 0 :(得分:1)

  1. 从System对象获取系统时间。
  2. 在动画中再次获取它。 Delta时间只不过是减法。
  3. 摆脱JavaScript代码。语言完全不同。

答案 1 :(得分:1)

传统上,游戏编程依赖于连续循环。 无论如何,我已经意识到了。

在此循环中,您应该分别进行模型更新和图形更新。 在你的剪辑中,你似乎尝试混合这两件事。

在这个循环中:
- 第一次,你让模型更新。例如:家伙从x移动到x1 - 在第二次,你必须刷新图形,以允许该人在屏幕上有一个新的位置。

你的家伙的速度取决于家伙模型(例如:你班上的常数)。 但另一类人的速度可能不同。

游戏的一般速度取决于主循环中设置的FPS。

您可以在此帖子中看到一个示例: Java Main Game Loop

祝你好运