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

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



Аналогично, когда шар прекращает движение, он удаляется из moving и вставляется в notMoving. Затем мы правильно размещаем шары на столе вызовом функции rack(). После этого, в строке 15, если ход за Эстель, ей дают шар-в-руке вызовом функции ballInHand(). Строка «partial» передается в ballInHand(). Эта строка означает, что шар-в-руке позади головной линии. Если передается «full», то она получает шар-в-руке без ограничений. Заключительные несколько строк в этой функции прозрачны: вызывается функция moveVariables() (она инициализирует некоторые переменные и вызывается перед каждым ударом). Затем появляется всплывающая графика и информирует вас, что игра началась. onEnterFrame В нижней части кадра Actions есть событие onEnterFrame: 1 this.onEnterFrame =function(){ 2 //l =getTimer(); 3 if (inPlay){ 4 moveBalls(); 5 keepGoing =true; 6 timer =0; 7 while (keepGoing &&++timer<10){ 8 ball2Ball(); 9 } 10 detectWalls(); 11 patch(); 12 renderBalls(); 13 if (game.moving.length ==0){ 14 moveDone(); 15 } 16 } 17 //trace(getTimer()-l); 18 }; Операторы в данном случае выполняются в каждом кадре, если inPlay равно true. Эта переменная устанавливается в true, когда пробивается шар-биток. В строке 4 мы делаем кое-что, что вы уже видели повсюду в этой книге: обновляем координаты объектов в памяти, но не в сцене. Далее мы устанавливаем keepGoing в true и timer в 0. Ранее в этой главе мы в деталях рассмотрели способ, которым мы выполняли обнаружение столкновения. Мы сохраняем все столкновения, сортируем массив и затем вычисляем реакцию на столкновения для первого столкновения в массиве. В строках 7-9 мы проходим через скрипт обнаружения столкновения снова и снова, пока не обнаружены все столкновения. Когда никаких более столкновений не обнаружено, функция ball2Ball() устанавливает keepGoing в false, и цикл прерывается. Однако, вы вероятно уже обратили внимание, что мы установили также другое ограничение для этого цикла – мы не можем позволить ему выполняться более чем десять раз за кадр
Hosted by uCoz