방향 구하기
항상
목적지 위치 - 시작 위치
타겟과의 각도 구하기 = 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;
}
}
'코딩공부 > Action Script 3.0' 카테고리의 다른 글
지역변수를 매개변수로 설정해 주는 방법 (0) | 2015.03.18 |
---|---|
Timer 함수에 대한 정리 (0) | 2015.03.17 |
이론 정리 (0) | 2015.03.10 |
달력 기본 개념 (0) | 2015.03.06 |
박스의 버튼을 누를 때마다 카운트를 하는 예제 (0) | 2015.03.05 |