2011-04-23 4 views
0

좋아요, 그래서 나는 레이저 총을 가지고 있으며 laser_mc라고 불리는 레이저 (물론 duh)를 쏘고 있습니다. 한 가지 문제가 있습니다. bad이라는 이름의 적을 추가하면 추가되고 제거 된 다음 다른 곳에 다시 나타납니다.적 추가하기

여기 내 코드입니다. 나는 무엇을 잘못 했는가?

var badadd:bad; badadd = new bad() 

addEventListener(Event.ENTER_FRAME, createbad); 
function createbad(event:Event):void { 
    addChild(badadd); 
    badadd.x = Math.random()*stage.width; 
    badadd.y= Math.random()*stage.height; 
} 

addEventListener(Event.ENTER_FRAME, removebad); 
function removebad(event:Event):void { 
    if (laser_mc.hitTestObject(badadd)) { 
     removeChild(badadd); 
    } 
} 

답변

1

여기서 enter_frame 루프를 사용하기 때문에 제거되고 다른 곳에 배치됩니다. 프레임이 프로그램을 틱 할 때마다 임의의 위치에서 동일한 적을 추가합니다. 그래서 무작위로 추가하고 제거한 다음 다시 무작위로 추가합니다.

는 루프를 설정하고 원수와 배열을 채우기 :

이 같은 것을 시도 할 수 있습니다. 배열을 클래스 속성 \, EnemyArray로 선언하십시오. 마찬가지로 (의사) : 이제 적을를 추가해야하는 경우

for i = 1 to 10 
    var tempEnemy = new Enemy() 
    EnemyArray[i].push(tempEnemy) // put the enemy in the array 

- 당신은 그냥 갈 필요가 그래서 이미 인스턴스화되었습니다 :

addChild(tempEnemy[index]); 

이제 할 수있는 히트 테스트를위한 배열을 순환,

이것이 너무 개념적이라면 코드를 작성해 보겠습니다.

+0

예 저는이 모든 것을 이해하지 못합니다. 문제가 무엇인지 알 수는 있지만 문제를 해결하는 방법은 아닙니다. 오, 그래, 내가 수업을 사용하지 않고있어 내가 당신을 알릴 수있을 거라 생각 했어. – Thor625

관련 문제