Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function follow(follower:MovieClip, target:Vec2)
- {
- //calculate distance between follower and target
- var distanceX:Number = target.x-follower.x;
- var distanceY:Number = target.y-follower.y;
- //get total distance as one number
- distanceTotal = Math.sqrt(distanceX*distanceX+distanceY*distanceY);
- //check if target is within agro range
- if (distanceTotal <= agroRange)
- {
- //calculate how much to move
- var moveDistanceX:Number = turnRate*distanceX/distanceTotal;
- var moveDistanceY:Number = turnRate*distanceY/distanceTotal;
- //increase current speed
- moveX += moveDistanceX;
- moveY += moveDistanceY;
- //get total move distance
- var totalmove = Math.sqrt(moveX*moveX+moveY*moveY);
- //apply easing
- moveX = speed*moveX/totalmove;
- moveY = speed*moveY/totalmove;
- //move follower
- follower.x += moveX;
- follower.y += moveY;
- //rotate follower toward target
- //follower.rotation += 180 * Math.atan2(moveY, moveX) / Math.PI;
- var i:Number = 180 * Math.atan2(moveY, moveX) / Math.PI;
- follower.getChildAt(0).rotation = i;
- }
- }
Add Comment
Please, Sign In to add comment