Есть герой. Он ходит туда-сюда. Есть враг. Он пока ничего не умеет. Сейчас мы научим врага ходить вслед за игроком. Сделаем мы это парой условий.
Принцип таков(на примере платформера):
Как видите, ничего сложного. Приступим.
Шаг I
- Создайте героя.
- В панели свойств назовите его object1_mc.
- Создайте врага.
- В панели свойств назовите его object2_mc.
Отлично, героя(object1_mc) и врага(object2_mc) мы создали. Теперь приступаем к программированию.
Шаг II
- Научим героя ходить. Выделите его и в панели действий введите следующий код:
Код
onClipEvent(load) {
//Скорость
var speed = 6;
}
onClipEvent (enterFrame) {
//Движение влево
if (Key.isDown(Key.LEFT))
{
_x -= speed;
}
//Движение вправо
if (Key.isDown(Key.RIGHT))
{
_x += speed;
}
//Движение вперёд
if (Key.isDown(Key.UP))
{
_y -= speed;
}
//Движение назад
if (Key.isDown(Key.DOWN))
{
_y += speed;
}
}
- Готово, теперь выделим кадр на временной шкале.
- Снова откройте панель действий, если вы её закрыли.
- Напишите код:
Код
//Скорость врага
var speed2:Number = 4;
onEnterFrame = function ()
{
//Движение врага за игроком
//Вправо
if (object2_mc._x < (object1_mc._x))
{
object2_mc._x += speed2;
}
//Влево
if (object2_mc._x > (object1_mc._x))
{
object2_mc._x -= speed2;
}
//Вниз
if (object2_mc._y < (object1_mc._y))
{
object2_mc._y += speed2;
}
//Вперёд
if (object2_mc._y > (object1_mc._y))
{
object2_mc._y -= speed2;
}
};
- Готово, можете проверять ролик.
Если хотите, то можете в конце обработчика событий(после условий) вписать следующее:
Код
//Если враг поймал героя...
if (object1_mc.hitTest(object2_mc))
{
//... то возвращаем всё на свои места
object1_mc._x = 50;
object1_mc._y = 50;
object2_mc._x = 500;
object2_mc._y = 350;
//Выводим сообщение о поимке
trace("Поймал!");
}
Можно ещё добавить поворот врага в сторону героя, но это уже сами.
Если вы делаете не TDS, а платформер, то просто уберите 2 последних условия.
Исходник: ЯДиск