Создание кода
Создание кода
Хотя и клипы и слои отличаются от тех, что использованы в игре "Подстрели лису", основной сценарий этой игры применим и в нашем случае. Это сценарий, назначенный клипу "actions". Необходимо внести только два изменения, и я не буду приводить здесь весь код. Первое изменение состоит в том, что теперь можно выбирать из 10, а не из 7 лисиц, поэтому число внутри функции Math.random должно быть 10.
Второе изменение обращает внимание на положение курсора, так что сцена перемешалась, если пользователь двигает курсор вправо или влево. В этом случае вызывается функция moveScene на корневом уровне. Она принимает значения -1 или 1 в зависимости от направления движения.
// Перемещаем панораму,
if (_root._xmouse < 50) {
_root.moveScene(1);
} else if (_root._xmouse > 500) {
_root.moveScene(-1);
}
Поскольку мы не можем нарисовать бесконечно широкую сцену, нам приходится задавать границы панорамирования. Две переменные содержат максимально разрешенное передвижение влево и вправо. Я определил эти границы путем проб и ошибок. Начал я с 50 и увидел, что игрок может доходить до конца деревьев. Тогда я начал пробовать меньшие числа, пока игрок не перестал вылезать за границы сцены.
panLimitLeft = -30;
panLimitRight = 30;
panAmount = 0 ;
Потом три клипа - "trees", "bushes" и "hills" - перемещаются в нужном направлении. Деревья перемещаются с коэффициентом (фактически скоростью) 10, кусты - с коэффициентом 5 и холмы - 4. Я подобрал эти значения путем проб и ошибок. По-моему, они создают достаточное ощущение глубины.
Первые 7 лисиц, которые находятся прямо за деревьями, движутся с ними вместе с коэффициентом движения 10. Остальные три лисы перемещаются с коэффициентом 5, поскольку сидят за кустами.
function moveScene(d) {
// Проверяем, не выходит ли значение панорамирования за
// разрешенные границы.
if ((panAmount+d > panLimitLeft) and (panAmount+d < panLimitRight)) {
// Увеличиваем значения.
panAmount += d;
// Передвигаем слои с разными скоростями,
trees._x += d*10;
bushes._x += d*5 hills._x += d*4;
/7 Передвигаем клипы "foxes 0-6".
for{i = 0;i<7;i + + ) {
_root["fox"+i]._x += d*10;
// Передвигаем клипы "foxes 7-9"
for(i=7;i<10;i++) {
_root [ "fox"+i] ._x += d*5;
}
}
}
gotoAndStop(1);
_parent.gotoAndStop(1);