Получилось очень странно. Змея движется как надо только в верхний правый, и нижний левый углы(по отношению к змее)
Попробовал 10 вариантов, сделать нормально не получается.
Macromedia Flash Professional 8
Код
var lx = lard._x;
var ly = lard._y;
var amplitude:Number = 100;
var rate:Number = Math.PI/24;
Mouse.hide();
this.onMouseMove = function():Void
{
lard._x = this._xmouse;
lard._y = this._ymouse;
}
kitx = lx;
kity = ly;
cos_al_kill = (lx - killer._x) / Math.sqrt( (killer._x - lx) * (killer._x - lx) + (killer._y - ly) * (killer._y - ly));
sin_al_kill = (ly - killer._y) / Math.sqrt( (killer._x - lx) * (killer._x - lx) + (killer._y - ly) * (killer._y - ly));
if (Key.isDown(Key.SPACE)) {
killer._x = 100;
killer._y = 100;
}
if ((kitx > killer._x) && (kity > killer._y)) {
killer._x += 3 * cos_al_kill + amplitude * Math.sin(killer._y * rate) / 30;
killer._y += 3 * sin_al_kill;
} else if ((kitx < killer._x) && (kity < killer._y)) {
killer._x += 3 * cos_al_kill + amplitude * Math.sin(killer._y * rate) / 30;
killer._y += 3 * sin_al_kill;
} else if ((kitx > killer._x) && (kity < killer._y)) {
killer._x += 3 * cos_al_kill + amplitude * Math.sin(killer._y * rate) / 30;
killer._y += 3 * sin_al_kill;
} else if ((kitx < killer._x) && (kity > killer._y)) {
killer._x += 3 * cos_al_kill + amplitude * Math.sin(killer._y * rate) / 30;
killer._y += 3 * sin_al_kill;
}
var ly = lard._y;
var amplitude:Number = 100;
var rate:Number = Math.PI/24;
Mouse.hide();
this.onMouseMove = function():Void
{
lard._x = this._xmouse;
lard._y = this._ymouse;
}
kitx = lx;
kity = ly;
cos_al_kill = (lx - killer._x) / Math.sqrt( (killer._x - lx) * (killer._x - lx) + (killer._y - ly) * (killer._y - ly));
sin_al_kill = (ly - killer._y) / Math.sqrt( (killer._x - lx) * (killer._x - lx) + (killer._y - ly) * (killer._y - ly));
if (Key.isDown(Key.SPACE)) {
killer._x = 100;
killer._y = 100;
}
if ((kitx > killer._x) && (kity > killer._y)) {
killer._x += 3 * cos_al_kill + amplitude * Math.sin(killer._y * rate) / 30;
killer._y += 3 * sin_al_kill;
} else if ((kitx < killer._x) && (kity < killer._y)) {
killer._x += 3 * cos_al_kill + amplitude * Math.sin(killer._y * rate) / 30;
killer._y += 3 * sin_al_kill;
} else if ((kitx > killer._x) && (kity < killer._y)) {
killer._x += 3 * cos_al_kill + amplitude * Math.sin(killer._y * rate) / 30;
killer._y += 3 * sin_al_kill;
} else if ((kitx < killer._x) && (kity > killer._y)) {
killer._x += 3 * cos_al_kill + amplitude * Math.sin(killer._y * rate) / 30;
killer._y += 3 * sin_al_kill;
}
Подскажите решение пожалуйста...