Поместив Thread.sleep
в это место, вы, вероятно, приостановили поток, который перетаскивает aws окно, когда оно меняется, поэтому экран зависает, когда вы это делаете.
Правильный способ приостановить игру должен иметь переменную, которая указывает на приостановленное состояние (что-то вроде boolean paused
), и просто не обновлять игровое состояние вообще, когда это логическое значение установлено.
Например, если у вас был код, который сказал
foo.posX += foo.velocityX; // move the foo
затем вы меняете это значение на
if (!paused) {
foo.posX += foo.velocityX; // move the foo
}
В основанной на событиях системе, такой как Swing UI, вы обычно вообще не хотите полностью останавливать обработку. Вы просто хотите выборочно отключить некоторые действия.