Если нужно, поворачиваем лису влево
function nextMove () {
// Предположим, что лиса двигаться не будет.
fox.move.х =0;
fox. move, у =0;
// Проверяем клавиши со стрелками.
// Определяем потенциальное направление движения.
// Если нужно, поворачиваем лису влево или вправо.
if (Key.isDownfKey.LEFT)) {
fox.move.x = -1;
fox._xscale = Math.abs(fox._xscale);
} else if (Key.isDown(Key.RIGHT)) {
fox.move.x = 1;
fox._xscale = -Math.abs(fox._xscale);
} else if (Key.isDown(Key.UP)) {
fox.move.у = -1;
} else if (Key.isDownfKey.DOWN)) {
fox.move.у = 1;
}
// Определяем потенциальное положение цели.
newx = fox._x + fox.move.x*25;
new = fox._y + fox.move.y*25;
okToMove = false;
// Просматриваем массив berries: совпадают ли координаты
// потенциального положения цели с координатами какой-либо
// ягоды,
for(i=0;i< berries.length;i++) {
// Совпадение найдено, указываем новое положение цели,
if ((berries[i]._x == newx) and (berries[i]._y == newy)) {
fox.dest.x = newx;
fox.dest.y = newy;
okToMove = true;
}}
// Указываем специальные установки для прохода сквозь тоннель,
if (newx == 550) {
okToMove = true;
fox.dest.x = 25;
} if (newx == 0) {
okToMove = true;
fox.dest.x = 525;}
// Если совпадение не найдено, не перемещаем лису.
if (!okToMove) {
fox.move.x = 0;
fox.move.у = 0;
}}
Кролик двигается непредсказуемо. Когда он доходит до ягоды, следующий фрагмент кода просматривает массив berries и определяет, какие клипы ягод находятся рядом с текущим положением кролика. Затем случайным образом выбирается один из этих клипов, координаты которого и будут положением цели кролика. Не может быть выбрано только то направление, откуда пришел кролик. Другими словами, кролик не может вдруг повернуть назад. Таким образом, кролик идет по длинным коридорам, не останавливаясь и не шарахаясь из стороны в сторону. Однако если кролик заходит в тупик, он может идти в обратном направлении, так как это единственно возможный путь.
И последнее, что делает функция move Bunny, - это проверяет, не находится ли кролик вблизи от лисы. Если да, то кролик ловит лису, и она теряет одну жизнь.