2016-04-24 6 views
0

У меня есть символ на экране, который может перемещаться влево и вправо с помощью назначенных клавиш, но не может двигаться вверх, пока персонаж не достигнет определенной точки на экране (лестница помещена в конец). Как только персонаж достигнет этой лестницы, пользователь может нажать UP, чтобы подняться вверх, однако, пока они поднимаются, они также могут перемещаться влево и вправо, используя назначенные ключи. Есть ли способ сделать левую и правую клавишу командной строки недействительной в то время как в непосредственной близости от лестницы, только имея возможность подняться, а затем когда-то пропустить лестницу, тогда ключи будут использоваться?Как временно аннулировать код ключа, когда объект находится в определенной области экрана?

ответ

0

Вы должны хранить состояние вашего персонажа в переменных, а затем проверить эти переменные в если заявления принять правильное действие, учитывая текущее состояние.

В вашем случае вы можете использовать простой boolean, который отслеживает, поднимается ли игрок по лестнице или нет. Затем вы только проверите, что boolean, когда вы обнаруживаете нажатые стрелки влево или вправо, и только перемещайте проигрыватель влево или вправо, если игрок не, поднимающийся по лестнице.

Что-то вроде этого:

boolean climbing = false; 

void keyPressed(){ 
    if(keyCode == LEFT){ 
     if(!climbing){ 
     //move player left 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^