2014-06-06 2 views
0

전함을 이동하여 적의 함선을 방어하는 동안 특정 목표를 완료하는 전함 시뮬레이터를 만들고 있습니다. 적의 함선은 우주선의 위치를 ​​추적하고 그 우주선을 쏠 수있는 원시 AI 형태를 가져야합니다.AS3의 AI 관련 문제

내가 겪고있는 문제는 적의 함대 그룹이 위치에 따라 플레이어의 배를 타고 갈 수 있도록 코드를 작성할 수있는 방법이 무엇인지 완전히 모르겠다는 것입니다. 나는 적의 배가 움직이게하려고 여러 번 시도했지만, 아무 소용이 없다.

var EMoveTimer:Timer = new Timer(10); 
    EMoveTimer.addEventListener("timer", EMove); 

    function EMove(eventArgs:TimerEvent):void{ 

     EMoveTimer.start(); 

     if(((mvi_EBattleship.x + 31.7) < mvi_PBattleship.x) && (mvi_EBattleship.x < mvi_PBattleship.x) && ((mvi_EBattleship.y + 195.8) < mvi_PBattleship.y) && (mvi_EBattleship.y < mvi_PBattleship.y)){ 
      mvi_EBattleship.x += 1; 
      mvi_EBattleship.y += 1; 
     } 

     else if(((mvi_EBattleship.x + 31.7) < mvi_PBattleship.x) && (mvi_EBattleship.x < mvi_PBattleship.x) && (mvi_EBattleship.y > (mvi_PBattleship.y + 195.8)) && ((mvi_EBattleship + 195.8) > (mvi_PBattleship.y + 195.8))){ 
      mvi_EBattleship.x += 1; 
      mvi_EBattleship.y -= 1; 
     } 

     else if((mvi_EBattleship.x > (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.x + 31.7) > (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.y + 195.8) < mvi_PBattleship.y) && (mvi_EBattleship.y < mvi_PBattleship.y)){ 
      mvi_EBattleship.x -= 1; 
      mvi_EBattleship.y += 1; 
     } 

     else if((mvi_EBattleship.x > (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.x + 31.7) > (mvi_PBattleship.x + 31.7)) && (mvi_EBattleship.y > (mvi_PBattleship.y + 195.8)) && ((mvi_EBattleship + 195.8) > (mvi_PBattleship.y + 195.8))){ 
      mvi_EBattleship.x -= 1; 
      mvi_EBattleship.y -= 1; 
     } 

     else if((mvi_EBattleship.x > mvi_PBattleship.x) && ((mvi_EBattleship.x + 31.7) < (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.y + 195.8) < mvi_PBattleship.y) && (mvi_EBattleship.y < mvi_PBattleship.y)){ 
      mvi_EBattleship.y += 1; 
     } 

     else if((mvi_EBattleship.x > mvi_PBattleship.x) && ((mvi_EBattleship.x + 31.7) < (mvi_PBattleship.x + 31.7)) && (mvi_EBattleship.y > (mvi_PBattleship.y + 195.8)) && ((mvi_EBattleship.y + 195.8) > (mvi_PBattleship.y + 195.8))){ 
      mvi_EBattleship.y -= 1; 
     } 

     else if((mvi_EBattleship.y > mvi_PBattleship.y) && ((mvi_EBattleship.y + 195.8) < (mvi_PBattleship.y + 195.8)) && ((mvi_EBattleship.x + 31.7) < mvi_PBattleship.x) && (mvi_EBattleship.x < mvi_PBattleship.x)){ 
      mvi_EBattleship.x += 1; 
     } 

     else if((mvi_EBattleship.y > mvi_PBattleship.y) && ((mvi_EBattleship.y + 195.8) < (mvi_PBattleship.y + 195.8)) && (mvi_EBattleship.x > (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.x + 31.7) > (mvi_PBattleship.x + 31.7))){ 
      mvi_EBattleship.x += 1; 
     } 
    } 

그래서, 내 주요 질문은 다음과 같습니다 :

1 첨부

적 선박의 움직임에 대한 나의 가장 최근의 코딩 시도 (mvi_PBattleship 플레이어 우주선 용이며 mvi_EBattleship 적의 선박을위한)입니다) 적이 플레이어를 추적 할 수 있도록하기 위해 어떤 코드를 사용해야합니까?

2) 플레이어에서 적의 총알을 어떻게 만들 수 있습니까?

3) 두 적의 충돌을 추적 할 수있는 방법이 있습니까?

내일까지이 프로젝트가 거의 완료 될 것으로 예상되므로 실제 코드가 많이 필요할 것이고 감사 할 것입니다. 당신의 도움을 주셔서 대단히 감사합니다.

+1

세 가지 매우 광범위한 문제에 대한 해결책을 묻고 나서 문제에 대한 실제 작업 코드를 묻습니다. 나는 당신이 그것을 얻을 것이라고 확신하지 못합니다. – Marty

+0

@ 마티 "당신이 그것을 얻지 않을 것이라고 확신합니다." – Vesper

+0

질문에 컨텍스트와 코드를 포함 시키려고 했으므로 여기에 부분 답변이 나와 있습니다. Marty & Vesper는 맞습니다. 느슨하게 관련된 세 가지 질문에 대한 코드를 요구하는 것이 대답을 얻는 가장 좋은 방법은 아닙니다. 1) 삼각법이 도움이 될 수 있습니다. 반경 위치는 시원합니다. 2) 총알은 오직 IA가 스트레스를 줘야하는 부양 될 수있다. 3) hitTestObject가 도움이 될 수 있습니다. – Aralicia

답변

0

내가보기에 중요해야하는 첫 번째 질문에만 답할 것입니다.

NPC (비 플레이어 캐릭터)를 제어하려면 "조종 행동"here을 as3에 대한 매우 유용한 가이드로 사용할 수 있습니다.

바퀴를 재발 명하지 마십시오.