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

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



abs(100-30) дает положительный результат. Поскольку это то же самое, что и знак от начальной и конечной позиций, персонаж еще не достиг цели (Есть!). В некоторой точке текущая позиция персонажа будет больше чем цели назначения – скажем, 105. Значение выражения (100-105)/Math.abs(100-105) отрицательно. Поскольку это значение более не соответствует положительному значению найденному со стартовой и конечной позициями, мы знаем, что персонаж достиг цели назначения. Мы выполняем эту проверку как для направления x, так и для направления y. Как только одно из этих двух положений выполнено, персонаж должен остановиться. В строке 13 мы устанавливаем свойство moving в значение false, а затем векторную скорость в 0. В строках 16 и 17 мы устанавливаем временную позицию персонажа равной цели назначения. Затем, в строке 18 мы изменяем отображаемый кадр персонажа на статичный кадр. Последняя функция, которую нам нужно рассмотреть, это detectObjects(). Эта функция вызывается в каждом кадре и определяет, шагнул ли персонаж во фрейм, который содержит объект (типа растения или блока). 1 function detectObjects(){ 2 //Extend a little in the direction of motion 3 var x =world.char.tempx+world.char.feelerx; 4 var z =Math.abs(world.char.tempz+world.char.feelerz); 5 var x_tile =Math.ceil(x/world.cellWidth); 6 var z_tile =Math.ceil(z/world.cellWidth); 7 if (world.tiles [x_tile ][z_tile ].isObject !=true){ 8 var x =world.char.tempx; 9 var z =Math.abs(world.char.tempz); 10 var x_tile =Math.ceil(x/world.cellWidth); 11 var z_tile =Math.ceil(z/world.cellWidth); 12 var depth =world.tiles [x_tile ][z_tile ].depth+1; 13 world.char.clip.swapDepths(depth); 14 }else { 15 world.char.tempx =world.char.x; 16 world.char.tempz =world.char.z; 17 world.char.xmov =0; 18 world.char.ymov =0; 19 world.char.moving =false; 20 var frame =world.char.frame; 21 world.char.clip.gotoAndStop("stand"+frame); 22 } 23 } В строках 3-6 мы прибавляем значения feelerx и feelerz к временным значениям x и z, для определения, какой плитки касается щупальце
Hosted by uCoz