2011-12-06 4 views
0

동전이있는 플랫폼 게임을 만들고 있습니다. 캐릭터가 그 위에 걸 으면 동전은 제거되어야합니다. 시도 했음캐릭터/Coin hittest in as3

슬픈 듯이 슬프게도 작동하지 않으므로 제안 사항이나 더 좋은 방법이 있으면 여기에 게시하십시오.

+1

어떻게 작동하지 않습니까? 점수, 사라지고, 히트 테스트? 코인remove 전화는 언제입니까? – Kodiak

+0

나는 그것이 왜 묻지 않는지 그 이유는 모르겠다. 점수는 txt 상자입니다. – Thor625

+0

당신은 그 클래스의 인스턴스보다는 Coin 클래스 정의에 대한 히트 테스트를하고있는 것처럼 보입니다. –

답변

1

hitTest이 MovieClip 설명서에 나와 있지 않으므로 어떻게 든 hitTestObject을 사용한다고 가정합니다. 나는 또한 코인 제거코인 클래스의 함수라고 가정 할 것입니다 ...이 정확합니까? 그게 사실이라면

는, 문제는 당신이 클래스 아닌 객체에 대해 적중 테스트를 실행하는 것 같다. ActionScript와 같은 언어의 구별은 약간 흐려질 수 있습니다. 따라서 코드가 컴파일되는 경우 (컴파일하는 경우), 그럼에도 불구하고 오류가 발생합니다. 이것을 시도하십시오 :

private function coinremove(event:Event):void { 
    if (mcMain.hitTestObject(this)) { 
     parent.removeChild(this); 
     removeEventListener(Event.ENTER_FRAME, coinremove); 
     _root.mainScore += 100; 
    } 
} 

이제 개체는 클래스 대신 자체에 대해 적중 테스트를 수행합니다. 객체 (또는 인스턴스)는 값을 갖는 속성을 가지고 클래스는 객체가 가질 수있는 속성을 정의합니다. 이것은 객체 지향 프로그래밍의 기초입니다. ActionScript 3에서 OOP에 대한 자세한 내용을 보려면 this page by Adobe을 확인하십시오.

+0

맞지만 여전히 작동하지 않습니다. – Thor625

+0

작동하지 않는 기능은 무엇입니까? 문제의 증상을 설명하면보다 신속하게 도움을 드릴 수 있습니다. 컴파일 시간 오류가 있습니까? mainScore 변수가 업데이트됩니까? trace 문을 coinremove 함수 (if 블록 외부)에 추가하여 함수가 호출되고 있는지 확인하십시오. 그렇지 않은 경우 더 큰 문제가 있으며 더 많은 코드를 게시해야합니다. –

+2

질문자 코드가 AS2에있는 것 같습니다. "_root"를주의하십시오. –