i know exactly what you mean bysee that behavior.
so here is the whole code maybe that you meant that
Code:
var overlapStepCount:Number = 25; function updatePosition(follower:MovieClip, target:MovieClip) { //calculate distance between follower and target follower.distanceX = target._x-follower._x; follower.distanceY = target._y-follower._y; //get total distance as one number follower.distanceTotal = Math.sqrt(follower.distanceX * follower.distanceX + follower.distanceY * follower.distanceY); //check if target is within agro range if(follower.distanceTotal <= follower.agroRange){ //calculate how much to move follower.moveDistanceX = follower.turnRate * follower.distanceX / follower.distanceTotal; follower.moveDistanceY = follower.turnRate * follower.distanceY / follower.distanceTotal; //increase current speed follower.moveX += follower.moveDistanceX; follower.moveY += follower.moveDistanceY; //get total move distance follower.totalmove = Math.sqrt(follower.moveX * follower.moveX + follower.moveY * follower.moveY); //apply easing follower.moveX = follower.speed * follower.moveX / follower.totalmove; follower.moveY = follower.speed * follower.moveY / follower.totalmove; //move & rotate follower var i:Number; var stepX:Number; var stepY:Number; if (follower.mode == "follow") { stepX = follower.moveX/_root.overlapStepCount; stepY = follower.moveY/_root.overlapStepCount; for (i=0; i<_root.overlapStepCount; i++) { follower._x += stepX; while (checkEnemyOverlap(follower)) { follower._x -= stepX; } follower._y += stepY; while (checkEnemyOverlap(follower)) { follower._y -= stepY; } } follower._rotation = Math.atan2(follower.moveY, follower.moveX) * radians1; } else if (follower.mode == "run") { stepX = follower.moveX/_root.overlapStepCount; stepY = follower.moveY/_root.overlapStepCount; for (i=0; i<_root.overlapStepCount; i++) { follower._x -= stepX; while (checkEnemyOverlap(follower)) { follower._x += stepX; } follower._y -= stepY; while (checkEnemyOverlap(follower)) { follower._y += stepY; } } follower._rotation = (Math.atan2(follower.moveY, follower.moveX) * radians1)+180; } } } function checkEnemyOverlap(enemy:MovieClip):Boolean { // check all enemies for (var i:Number = 0; i<_root.enemyArray.length; i++) { // make sure we don't check a hittest with ourself if (_root.enemyArray[i] != enemy) { // check if we hit if (_root.enemyArray[i].hitTest(enemy)) { return true; } } } return false; }
Greetings
Reaven












.
.
it would cost me alot of time and work and i rather spend my time working on something different.




