it leader

방향 구하기


항상


목적지 위치 - 시작 위치


타겟과의 각도 구하기 = Math.atan2( 타겟과의 Y 거리, 타겟과의 X거리 ) 


타겟 바라보기


객체.roatation = radian * 180 / Math/Pi


var enemy : MovieClip = enemy_mc;

var missile : MovieClip = missile_mc;


//미사일이 적을 향해 이동하기


var v  : Number = 30;    // 이동속도

var vx : Number = 0;    //  x 축 이동 속도 초기화

var vy : Number = 0;    //  y축 이동 속도 초기화


missile.addEventListener ( Event.ENTER_FRAME, onMissileEnter);


function onMissileEnter( e: Event ) : void

{

var dx : Number = enemy.x - missile.x;   // 에너미와 미사일 간의  x거리 구하기

var dy : Number = enemy.y = missile.y;   // 에너미와 미사일 간의  y거리 구하기

var rad : Number = Math.atan2( dy,dx);   // 에너미와 미사일과의 각도 구하기


missile.rotation = rad * 180 / Math.PI  // 미사일이 에너미를 바라보기


var dd : Number = dx * dx + dy* dy;    // 미사일과 에너미간의 직선거리 구하기


if( v * v > dd)    // 만약 속도가 거리 보다 클때

{

// 에너미와 미사일간의 거리가 속도보다 작을 떄 ( 즉 얼마 남지 않았을 떄)

missile.x = enemy.x;

missile.y = enemy.y;

missile.removeEventListener( Event.ENTER_FRAME, onMissileEnter);


}else{

// 에너미와 미사일 간의 거리가 속도보다 클 때 ( 많이 남았을 떄 )

vx += v * Math.cos(rad);

vy += v * Math.sin(rad);


missile.x += vx;

missile..y +=vy;

}

}



profile

it leader

@dev__pixui

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!