2017-10-09 16 views
1

Macromedia 이후로 코딩하지 않았으며 신의 변화가있었습니다. 나는 가파른 학습 곡선에 있고 그것에 다시 들어가려고 노력하고있다.CC에 애니메이션을 적용하여 코드를 생성합니다.

나는 선수가 타코를 모으고 점수가 올라가는 작은 플래시 게임을 만듭니다.

나를 위해 Animate CC에서 수집 가능한 돈을 벌기 위해 발견 한 온라인 코드가 없습니다. 왜 그런지 확신 할 수 없습니다. 스크립트가 잘 실행되고 디버그가 아무 것도 탐지하지 않습니다. 그러나 코드는 아무 것도하지 않습니다.

나는이 시도 :

나던 중 하나는 타코를 수집, 아니면 메인 화면에 올려 놓는 경우 타코 (플레이어를 다음과
if(player.hitTestObject(taco1)) 
{ 
    if(back.contains(taco1)) 
     removeChild(taco1); 

    score += 10; 
    points.text = String(score); 
} 

} 나는 또한 단지 시도했습니다

. AS3 게임 튜토리얼에 제공되는 코드 내 경우에 연결. 그것은 변경되지. 여기에 볼 수있는이의

if(keyCollected == false){ // if we still haven't collected the key 
if(player.hitTestObject(back.doorKey)){ // and if the player collides 
with the key 
back.doorKey.visible = false; // hide the key from view 
keyCollected = true; // set our Boolean to true 
} 
} 

것도 역시 작동하지 않습니다.

,

죄송하지만 포럼에 글을 올리지 못해 10 년만에 코드를 작성하지 않았습니다. 그러나 옳은 방향의 어떤 포인트가 도움이 될 것입니다! 고맙습니다!

답변

1

hitTestObject를 함수 안에 넣고 ENTER_FRAME 이벤트 나 TimerEvent에서 실행해야합니다. ENTER_FRAME 또는 타이머가 없으면 코드가 한 번만 실행되므로 아무 효과가 없습니다. 코드에서

난 당신이 taco1 개체에 대한 참조를 가지고 있음을 알 수 있으며, 그 목적은 다시 객체에 속한다.

if(back.contains(taco1)) 
    removeChild(taco1); 

위 코드에서 문제가 있습니다. 다음을 가져야합니다.

if(back.contains(taco1)) 
    back.removeChild(taco1); 

이외의 코드 블록은 정상적으로 작동합니다. ENTER_FRAME 이벤트를 사용하여 예를 들어 당신의 코드를 넣고 코드로 보일 것이다 다음 taco1 객체는 항상 당신이 시험을 치고 싶은 타코에 대한 참조를 보유하고 있다는 가정이 있음을

this.addEventListener(Event.ENTER_FRAME, collectTaco); 

function collectTaco(evt:Event):void { 
    if(taco1 != null && player.hitTestObject(taco1)) { 
     if(back.contains(taco1)) { 
      back.removeChild(taco1); 
      taco1 = null; 
     } 
     score += 10; 
     points.text = String(score); 
    } 
} 

참고. 그래서 taco1에서 제거한 후 무효화하는 이유입니다. 타코를 수집 한 후 if 문은 false로 평가되므로 다시 수집하려고 시도하지 않습니다. 게임이 진행되는 동안 더 많은 타코를 만들 것이라고 생각합니다. 새 타코 참조를 taco1으로 설정해야합니다.

당신은 (벡터에 저장하거나 바로 다시 부모의 모든 자식을 통과, 어쩌면 타코되고 그들을 테스트 중) 모든 타코를 통과해야하는 단계에 대한 자세한 타코을 가지고 히트를 할 경우 그들 모두를 시험하십시오.

+0

이것은 잘 돌아가는 것처럼 보입니다.하지만 아무것도 수행하지 않거나 "collecttaco"가 존재하지 않는다고 말하면됩니다. var가 필요합니까? –

+0

그런 다음 일부 프레임에만 코드 스 니펫이있을 수 있습니다. 타임 라인에 전체 범위가 있어야합니다 (게임이 타임 라인에 구성되어있는 것처럼 보입니다). 그걸 확인할 수 있니?그렇지 않다면 아키텍처를 설명 할 수 있습니까? –