В настоящее время я работаю над Java-игрой, и у меня есть int, который представляет здоровье игрока, которое начинается на уровне 100, а здоровье уменьшается на 5 каждый раз, когда это пересекается с противником, однако он проверяет это 60 раз в секунду, поэтому он быстро уменьшается, так как для этой секунды игрок вступает в контакт с противником, поэтому уменьшается на 300 в секунду, чтобы он касался его. Мне интересно, можно ли остановить значение int от изменения примерно на 3-5 секунд? Я не знаю, если это возможно, я попытался это:Остановить int от увеличения или уменьшения в течение определенного времени
try {
Thread.sleep(4000);
} catch(InterruptedException ie) {
Thread.currentThread().interrupt();
}
И тогда INT может быть добавлен после этого, но это только останавливает всю программу в течение 4 секунд, и есть другие вещи, происходящие в то время.
Я думаю, вы должны дать нам еще несколько контекстов. – Vegard
напишите метод сеттера и управление там ............. – pinkpanther
Вам нужно прекратить фокусироваться на «как остановить int от уменьшения», а вместо этого пересмотреть, как работает игровой цикл. Такие вещи необходимо объединить в «события», которые происходят только один раз. Когда игрок * первым * касается врага, происходит событие «контакта», и только до тех пор, пока игрок не перестанет касаться врага (а какое-то время проходит, называется «гистерезис»), может ли это событие повториться. Это сложно, но вам нужно идти по этому пути, иначе ваш код быстро станет гигантской дымящейся кучей. –