광부 게임을 만들고 있습니다 (금이 있고 거기에 훅을 붙잡아 야합니다). Main 클래스를 수정하여 이름이 "Gold"인 MovieClip (루트)의 모든 자식을 가져 와서 나중에 충돌 충돌이있는 Array (boulders [])에 넣습니다 (스테이지에서 "Gold"MovieClips를 모든 수준). 플레이어가 모든 금을 수집하면 (boulders array.length가 < = 0 일 때) goToAndStop (nextLevel), 스테이지에서 골드 무비 클립을 가져오고 이름이 == "Gold"이면 볼더에 넣습니다 [ ]. 발생했습니다 : 첫 번째 레벨 (프레임 2는 프레임 1이 프리 로더이므로 모든 것이 좋습니다) - 무대에 2 개의 금메달 클립 (디자인 모드에서)이 있고 2 개의 금이 배열에 모두 표시되어 표시됩니다. 두 번째 레벨에서 나는 4 개의 금을 가지고 있고 그 중 2 개만 배열에 넣어 표시했습니다. 3 단계에서 무대에서 디자인 한 7 개의 금메달이 있지만 단지 3 개만 볼더 배열에 표시됩니다. 다음 프레임 골드 영화 클립 수에서 이전 프레임의 금 (gold)의 이전 계수가 거의 뺍니다. 누구 아이디어? 여기무대의 무비 클립이 사라졌습니다.
public function createLevel(){
nextLevel = this.currentFrame + 1;
for (var i:uint = 0; i < MovieClip(root).numChildren; i++){
if(MovieClip(root).getChildAt(i).name=="Gold")
{
this.addChild(MovieClip(root).getChildAt(i));
boulders.push(MovieClip(root).getChildAt(i));
}
}
placePod();
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPress);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyRelease);
addEventListener(Event.ENTER_FRAME, updateStatus);
}
내가 볼더 배열에 이름이 "골드"모든 아이를 추가하고 무대에 올려 :
나는 Main.as 코드를 삽입하고있다. 다음 포드와 막대를 추가하십시오. 여기
private function placePod():void {
pod = new Pod();
addChild(pod);
pod.createRod();
}
그리고
이 바위를 제거 키 입력을 수신하고, 함수, 다음 boulder.length < = 0, 모든 청취자를 제거하는 경우가 gotoAndStop (nextLevel)와 금 다시로드 다시 createLevel() 함수를 호출 다음 프레임의 무비 클립. 여기에 제가 위에 묘사 한 문제가 있습니다.private function updateStatus(e:Event):void {
if (!left && !right) {
pod.setSpeed(0);
} else if (left && right) {
pod.setSpeed(0);
} else if (left) {
pod.setSpeed(-4);
} else {
pod.setSpeed(4);
}
for (var i in boulders) {
boulders[i].updateStatus();
if (boulders[i].remove) {
removeBoulder(boulders[i]);
boulders.splice(i, 1);
}
}
if(boulders.length <= 0)
{
pod.removeRod();
removeChild(pod);
stage.removeEventListener(KeyboardEvent.KEY_DOWN,onKeyPress);
stage.removeEventListener(KeyboardEvent.KEY_UP,onKeyRelease);
removeEventListener(Event.ENTER_FRAME, updateStatus);
MovieClip(root).gotoAndStop(nextLevel);
createLevel();
}
}
누군가가 나를 도울 수 있다면 매우 감사 할 것입니다 .--) 감사합니다.
내 생각에 이런 일이 발생하면 MovieClip (루트) 하위가 제거되지 않고 프레임 2에 3 개의 MovieClip이 이름이 "gold"이고 프레임 3에 이름이 "gold"인 5 개의 MovieClip이 있고 다른 3 개가 여전히 존재하는 경우 두 개의 MovieClips 만 표시됩니다. 나는 이것을 시도한다 : MovieClip (root) .removeChild (boulder); removeBoulder 함수에서 작동하지만 작동하지 않습니다. – Mariyan
OK 해결 방법 :-) 모든 키 프레임 (레벨 프레임) 사이에 빈 키 프레임을 남깁니다. 그리고 그것은 작동합니다. 이제 nextLevel var를 추가 할 때마다 다음 레벨로 갈 때마다 2 씩 증가합니다. – Mariyan