В зависимости от сложности движения рыбы, вы должны измерить расстояние и угол между рыбой и позицией мыши на Event.ENTER_FRAME
(или с интервалом Timer
), а затем заставить рыбу двигаться в противоположном направлении. , если расстояние меньше минимального значения.
Это может помочь:
function getDistance ( posa:Point, posb:Point ) : Number {
var distanceX : Number = posa.x - posb.x;
var distanceY : Number = posa.y - posb.y;
return Math.sqrt( Math.pow(distanceX, 2) + Math.pow (distanceY, 2) );
}
function getAngle ( posa:Point, posb:Point ) : Number {
var distanceX : Number = posa.x - posb.x;
var distanceY : Number = posa.y - posb.y;
var angleInRadians : Number = Math.atan2 ( distanceY, distanceX );
var angleInDegrees : Number = angleInRadians * (180 / Math.PI);
return angleInDegrees > 0 ? angleInDegrees : angleInDegrees + 360; // always returns a positive value to avoid confusion when used with the rotation property
}
использование:
var posa:Point = fish.parent.localToGlobal (new Point (fish.x, fish.y); // fish position relative to the stage
var posb:Point = new Point (stage.mouseX, stage.mouseY); // mouse position relative to the stage
var distance:Number = getDistance (posa, posb); // distance in pixels
var angle:Number = getAngle (posa, posb); // angle in degrees