2013-04-20 2 views
0

나는 적과 싸우는 플래시 게임을하고 있습니다. 나는 슬라임 (slime)이라 불리는 적에 AI 전체를 사용했다. 지금은 현장에이 적군의 배를 넣어 싶습니다 내가 모든 코드를 복제해야한다면 나는 예를 slime1 slime2 등을 위해, 궁금AI로 적을 복제

if ((img_background.BackGround.wall).hitTest(slime._x + radius, slime._y,true)) { // When the slime hits a right wall 
    slime._x -= 8 
} 

if ((img_background.BackGround.wall).hitTest(slime._x, slime._y + radius, true)) { 
    slime._y -= 8; 
} 
if ((img_background.BackGround.wall).hitTest(slime._x, slime._y - radius, true)) { 
    slime._y += 8; 
} 
if ((img_background.BackGround.wall).hitTest(slime._x - radius, slime._y, true)) { 
    slime._x += 8; 
} 

if ((img_background.BackGround.wall).hitTest(slime._x)){ 
    SLIwalltouch = 1 
}else{ 
    SLIwalltouch = 0 
} 

는 여러 개의 값을 가진 변수를 지정하고 같은 일을 할 수 : "점액"+ numberofslimes ..... 나는 이것에 초보자이고 도움이 필요합니다. 감사.

참고 : 저는 2.0

+0

이 점액은 무비 클립입니다? – RafH

답변

0

코드를 래핑하는 함수를 사용하여 매개 변수를 원하는 모든 영화 클립을 것 플래시 액션 스크립트를 사용하고 있습니다. 먼저 "목표"에 대해 적중 테스트를 확인할 함수를 준비합시다. 의 난 "대상"과 "점액"의 모든 발생을 교체 한

function checkTouch(target){ 
     // When the slime hits a right wall 
     if ((img_background.BackGround.wall).hitTest(target._x + radius, target._y,true)){ 
     target._x -= 8 
     } 
     if ((img_background.BackGround.wall).hitTest(target._x, target._y + radius, true)) { 
     target._y -= 8; 
     } 
     if ((img_background.BackGround.wall).hitTest(target._x, target._y - radius, true)) { 
     target._y += 8; 
     } 
     if ((img_background.BackGround.wall).hitTest(target._x - radius, target._y, true)) { 
     target._x += 8; 
     } 

     if ((img_background.BackGround.wall).hitTest(target._x)){ 
     SLIwalltouch = 1 
     }else{ 
     SLIwalltouch = 0 
     } 
    } 

통지 예를 들어, checkTouch를 호출 할 수 있습니다. 이 시점에서 원하는 무비 클립으로 함수를 호출하면 해당 무비 클립이 무비 클립인지 확인할 수 있습니다. 코드를 만들 수

그냥이 추가, 바로 당신과 같은 작업을 수행합니다

checkTouch(slime); 

지금이 더 많은 개체를 확인하는 방법에 대한 힌트해야합니다. 당신이있는 경우에, 당신은 더 적을 가진 끝날 경우가 훨씬 더 유용 할 것 "점액", "slime2", "모양을 한 악마"와 "용"이라고 적, 당신은 그러나

checkTouch(slime); 
    checkTouch(slime2); 
    checkTouch(hellhound); 
    checkTouch(dragon); 

을 할 수있는,의 말을하자 배열에 원수를 추가 한 다음 루프에서 그들에게 기능을 적용하려면 다음 순서는 기능에서이 같은 배열에 다음 선언 할 수 있습니다 전에 적들이 무대에 존재해야

var all_enemies=[slime, slime2, hellhound, mushroom, ..., enemyN]; 

    for(enemy in all_enemies){ 
     checkTouch(enemy); 
    } 

참고.

어레이의 모든 적을 쓰고 싶지 않고 적의 정확한 숫자를 알고 싶지 않은 경우 플래시의 무비 클립 이름 구성 기능을 사용할 수 있습니다.

은 이렇게 가고, 이름 모든 원수 enemy1, enemy2, enemy3처럼 ... 다음은 for 루프는 다음과 같이합니다

for(i=0; i<numberofenemies; i++){ //replace numberofenemies with the number of enemies 
     checkTouch(this["enemy"+i]); 
    }