Есть главный герой, есть монстры (вид сверху), нужно сделать так что бы монстры постепенно шли к главному герою и были к нему всегда лицом. Вообщем вот как я это сделал:
Код на фрейме

Код:
//Вызываем функцию создания монстров.
this.onEnterFrame = function() {
bot_create();
};
//Функция создает 20 монстров помещая их на карту в случайном месте.
var j = 0;
function bot_create() {
for (j; j<20; j++) {
num++;
name = "bot"+num;
this.attachMovie("bot", name, num);
_root[name]._x = 1280*Math.random();
_root[name]._y = 960*Math.random();
}
}
Код в клипе монстра, во фрейме Move

Код:
stop();
this.onEnterFrame = function() {
//Смотрим как далеко монстр от героя
if (Math.sqrt(Math.pow(this._x-_root.hero._x, 2)+Math.pow(this._y-_root.hero._y, 2))<50) {
//При приблежении монстра переходим на фрейм Attack
this.gotoAndPlay("attack");
} else {
//Если монстр далеко от героя
this.gotoAndStop("move");
bot_speed = 2;
//Разворачиваем монстра лицом к герою
ang = Math.atan2(this._y-_root.hero._y,this._x-_root.hero._x)*180/Math.PI;
this._rotation = ang;
//Заставляем его двигаться в нужном направлении
this.xmov = bot_speed*Math.cos(ang);
this.ymov = bot_speed*Math.sin(ang);
this._x += this.xmov;
this._y += this.ymov;
}
};
Код в клипе монстра, во фрейме Attack

Код:
stop();
this.onEnterFrame = function() {
//Смотрим как далеко монстр от героя
if (Math.sqrt(Math.pow(this._x-_root.hero._x, 2)+Math.pow(this._y-_root.hero._y, 2))>50) {
//Если далеко то переходим на движение
this.gotoAndPlay("move");
} else {
//Если близко то все время лицом к герою и отнимаем здоровье
ang = Math.atan2(this._y-_root.hero._y, this._x-_root.hero._x)*180/Math.PI;
this._rotation = ang;
hero_health-=1
}
};
Проблемы вот в чем:
1) Когда герой стоит на месте то монстры нормально двигаются к нему, когда герой начинает двигаться то монстры творят что-то странное, или начинают ходить кругами или дрыгаться в разных направлениях.
2) Если поставить высокую скорость монстрам то при прриближении к герою они дрыгаются, но ооканчательно (до атакующей позиции), приблизиться не могут
3) Если кол-во монстров на экране приблежается к 20 то игра начинает тормазить, при 100 монстрах пришлось жать CTRL+ALT+DEL
Вообщем что я не так сделал и как это исправить.