У меня есть символ на экране, который может перемещаться влево и вправо с помощью назначенных клавиш, но не может двигаться вверх, пока персонаж не достигнет определенной точки на экране (лестница помещена в конец). Как только персонаж достигнет этой лестницы, пользователь может нажать UP, чтобы подняться вверх, однако, пока они поднимаются, они также могут перемещаться влево и вправо, используя назначенные ключи. Есть ли способ сделать левую и правую клавишу командной строки недействительной в то время как в непосредственной близости от лестницы, только имея возможность подняться, а затем когда-то пропустить лестницу, тогда ключи будут использоваться?Как временно аннулировать код ключа, когда объект находится в определенной области экрана?
0
A
ответ
0
Вы должны хранить состояние вашего персонажа в переменных, а затем проверить эти переменные в если заявления принять правильное действие, учитывая текущее состояние.
В вашем случае вы можете использовать простой boolean
, который отслеживает, поднимается ли игрок по лестнице или нет. Затем вы только проверите, что boolean
, когда вы обнаруживаете нажатые стрелки влево или вправо, и только перемещайте проигрыватель влево или вправо, если игрок не, поднимающийся по лестнице.
Что-то вроде этого:
boolean climbing = false;
void keyPressed(){
if(keyCode == LEFT){
if(!climbing){
//move player left
}
}
}