Я пишу сценарий, который заставит игроков HP уменьшаться с интервалом, если они находятся в пределах диапазона предмета/монстра/лавы, что бы это ни было. У меня есть обнаружение просто отлично, но я, похоже, не получаю интервал для запуска. Я знаю, это, вероятно, потому, что я создаю новый TimerTask, как я рендеринга, но я не могу понять это.Событие таймера таймера не работает
for(Monster monster : monsters) {
renderer.processEntity(monster);
if(player.withinDistance(10, monster.getPosition()))
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
System.out.println("tick");
Player.PLAYER_HEALTH -= 10;
}
}, 2000, 2000);
}
Так что для всех монстров, он проверяет свои позиции, если вы рядом с ним открывает задание таймера, который должен тикать каждые 2 секунды, пока условие истинно. Как я могу сделать эту работу должным образом? Является ли задача таймера оптимальной для этой ситуации?
Спасибо, что помогает и может быть одной проблемой, но мой «тик» не показывался в первую очередь, поэтому я думаю, что он должен что-то сделать с тем, как тик зацикливается. Эта функция находится в моей основной петле игры –
Должен ли я хранить такие вещи, как здоровье, положение, деньги, ману, exp и свойства таких как статические ссылки? Или они должны быть нормальными глобальными, которые я устанавливаю и сохраняю каждый раз, когда открываю программу? U –