2017-04-11 3 views
0

플래시 cs6에서 플래 타이폼 게임을 개발하려고합니다. 그런 클래스의 플랫폼이 mario와 충돌했는지 확인하기 위해 enterFrameEvents라는 메서드가 필요하다는 Plataforma라는 클래스를 만들었습니다.충돌이 감지 되더라도 마리오가 플랫폼 상단을 통과합니다 (플래시 CS6)

그러나 내가하는 일과 관계없이 마리오가 맨 위에 충돌했지만 마리오는 플랫폼을 통과합니다. 그러나 그가 바닥과 다른면과 충돌 할 때 그것은 일어나지 않습니다.

나는 "plataforma"기호의 ocorrences 두 개의 파란색 플랫폼이있는 단계에서 내 코드 https://www.4shared.com/rar/jqa5oRGWei/AULA_6.html

와 링크를 붙여 넣기하고있다. 클래스 Plataforma는 플래시에 의해 "plataforma"심볼로 자동 생성되는 actionscript 클래스입니다. 여기

내가 코드

private function enterFrameEvents(event:Event):void{ 
     if(this.hitTestObject(mario)){ 

     // collision with top 
     if(mario.y + mario.height >= this.y && mario.y <= this.y && 
     mario.x + mario.width >= this.x + 5 && mario.x <= this.x + this.width - 5){ 

     _root.isJumping = false; 
     _root.speedY = 0; 
      mario.y = this.y - mario.height; 
     } 
    ... 
    } 

붙여 넣기하고 나는 구석에서 할인 5 픽셀입니다.

감사합니다.

+0

생각이 ** mario.y = this.y - mario.height ** 최대 플랫폼을 통해 마리오 텔레포트. 아마도 ** mario.y = this.y; ** 일 것입니다. – Organis

답변

1

문제는 mario.height 값입니다.

설명 :이 값은 계속 변경됩니다.

해결책 : 4 개의 숫자보다 약간 큰 mario.Clip에 투명한 배경을 추가하거나 상단 충돌 후 mario.y에 5 픽셀을 추가하십시오. 예를 들어

:

mario.y = this.y - mario.height + 5;