我试图编写我的第一个游戏的代码,当我达到这一点时,我想让我的怪物实际上进行攻击;我想我必须使用Timer,但是不确定如何。所以我走了一个头,抬头看了看。 堆栈溢出的人发布了这个;发布它而没有实际解释每件事实际上意味着什么?任何人都可以帮忙,因为我对此有点新意,并希望了解我在做什么,而不仅仅是因为它有效。 它实际上只是我不能追随的5000,5000。
但它似乎没有正确更新。因为它总是说两次行动?
TimerTask damageInterval = new TimerTask()
{
public void run()
{
playerInfoPanel.health -= monsterDamage - playerInfoPanel.defenceLevel;
}
};
inflictDamage.schedule(damageInterval, 5000, 5000);
}
答案 0 :(得分:2)
public void schedule(TimerTask task, long delay, long period)
为重复的固定延迟执行安排指定的任务, 在指定的延迟后开始。随后的执行将会发生 按规定的时间间隔按规定的时间间隔分开。
在固定延迟执行中,每次执行都是相对于 上次执行的实际执行时间。如果执行是 因任何原因而延迟(例如垃圾收集或其他背景 活动),后续处决也将延迟。在漫长的 运行时,执行频率一般会略低于 指定时期的倒数(假设系统时钟 底层Object.wait(long)是准确的。)
固定延迟执行适用于重复活动 要求"顺畅。"换句话说,它适合于活动 在短时间内保持频率准确更为重要 从长远来看。这包括大多数动画任务,例如 定期闪烁光标。它还包括其中的任务 常规活动是响应人类输入而执行的,例如 只要按住某个键,就会自动重复一个字符。
参数:
task
- 要安排的任务。
delay
- 在执行任务之前延迟(以毫秒为单位)。期间 - 时间 连续任务执行之间的毫秒数。