English Version            Русская версия

 [ Разделы сервера ]  [ Карта сервера ]  [ Новости сервера ] [ Обратная связь ]



crouch(); 58 var crouchMove =true; 59 var left =false; 60 } 61 } 62 } 63 } 64 } 65 hero.onPlatform =onPlatform; 66 if (crouchMove){ 67 if (left){ 68 hero.tempx -=hero.pushSpeed; 69 }else { 70 hero.tempx +=hero.pushSpeed; 71 } 72 } 73 if (!hero.onPlatform &&oldOnPlatform){ 74 //он как раз слева от платформы 75 hero.inAir =true; 76 } 77 } Вначале мы сохраняем текущее состояние свойство onPlatform объекта hero как oldOnPlatform. Мы используем это в конце функции для определения, находится ли герой слева от платформы без подпрыгивания. Далее мы устанавливаем локальную переменную onPlatform в false. Мы предполагаем, что герой находится не на платформе. Затем, в последующих циклах и условиях мы определяем, действительно ли герой находится на платформе. В строке 4 мы инициируем цикл for, который проходит по всем объектам платформ в массиве column (который хранит объекты, представляющие платформы). В строке 5 мы создаем ссылку на текущий объект в массиве column с именем platform. Затем мы создаем несколько локальных переменных для хранения некоторых свойств это платформы (строка 6-10). В строке 11 мы делаем нечто, что может быть не очевидно в данный момент. Если вы помните описание независимого от кадров обнаружения столкновений в Главе 5, «Обнаружение столкновений», это подобно моментальному снимку. Если один или оба объекта двигаются достаточно быстро, то они могут пройти друг сквозь друга без обнаружения этого факта. Такое возможно и в этой игре. В действительности, я столкнулся с этой проблемой при программировании этой игры и применил технику, которую я собираюсь описать. Вот что происходит в строке 11: мы берем координаты, где герой был в последнем кадре и координаты, где он находится в этом кадре, и затем делим это расстояние на шаги. Далее мы проходим через процедуру обнаружения столкновения в каждом шаге. Если столкновение найдено, мы останавливаем цикл. В большинстве случаев вы убедитесь, что одной петли достаточно
Массивная доска палисандр.
Hosted by uCoz