Ниже приведены некоторые правила поведения в Ледяном мире.
Герой может подпрыгивать, только если он в данный момент находится на поверхности или на платформе. (В некоторых играх герой может подпрыгивать в воздухе, но не в этой игре.)
Герой может подпрыгивать во время наклона, но не может идти, когда наклоняется.
В воздухе (в наклоне или нет), герой может управляться кнопками влево или вправо.
Управляемость героя менее восприимчива, пока он находится в воздухе. Это означает, что если герой прыгает, игрок может управлять направлением героя, но не так легко, как если бы герой находился на поверхности.
Когда вы смотрите на форматированный список правил, который представлен выше, кодирование функциональности не кажется слишком сложным делом. Однако есть несколько моментов, которые могут быть сложны для управления. Например, когда вы нажимаете клавишу со стрелкой вниз, герой должен наклониться. Но что, если герой бежал, затем наклонился и скользил под платформой, и затем вы отпускаете кнопку со стрелкой вниз? Герой при этом встал бы, если вы (как программист) не предвидели эту ситуацию. Что происходит в такой ситуации (в этой игре и в других похожих играх), это то, что герой остается склонившимся, но медленно продвигается (кодом) к одной или к другой стороне платформы. Когда герой достигнет края, он автоматически разогнется. Вы узнаете об этом больше при рассмотрении функции platformDetect().
Ниже приведена функция listenForKeys():
1 function listenForKeys(){
2 hero.wasCrouching =hero.isCrouching;
3 if (hero.inAir){
4 hero.walkIncrement =hero.airWalkIncrement;
5 }else {
6 hero.walkIncrement =hero.groundWalkIncrement;
7 }
8 if (Key.isDown(Key.RIGHT)&&(!hero.isCrouching ||
.(hero.isCrouching &&hero.inAir))){
9 hero.xmov +=hero.walkIncrement;
10 hero.walkRight();
11 }else if (Key.isDown(Key.LEFT)&&(!hero.isCrouching ||
.(hero.isCrouching &&hero.inAir))){
12 hero