2013-10-21 2 views
0

플레이어 본체가 있습니다. 그는 싱글 점프를했습니다. 즉 그가 점프 할 때, 그는 두 번째 점프를 위해 터치 그라운드를 기다려야 만합니다.두 번째 공중에서 점프

private ContactListener contactListener() 
    { 
     ContactListener contactListener = new ContactListener() 
     { 
      @Override 
      public void beginContact(Contact contact) 
      { 
       player.setJumping(false); 


      } 

      @Override 
      public void endContact(Contact contact) 
      { 

         player.setJumping(true); 




      } 
     }; 
     return contactListener; 
    } 

연락처가있는 경우 그는 점프 할 수 있습니다. 그렇지 않다면 그는 공중에 있기 때문에 뛰어 내지 못합니다. 그 코드에서, 그의 머리가 어떤 몸이라도 만지면 그는 도약 할 수 있습니다. 그래서 여기에 오류가 있습니다. 그는 발이 만져야 만 점프해야합니다. 이 문제를 어떻게 해결할 수 있습니까?

+0

당신은을 사용하고 Adobe 통합 런타임? 또는 점프 컨텍스트의 일부로 'air'태그를 추가 했습니까? –

+0

두 번째! 나는 Andengine을 사용하고 있습니다. – immyth

+0

추가 : 신체의 감동적인 측면을 어떻게 이해할 수 있습니까? – immyth

답변

1

조명기 데이터에서 ID를 사용할 수 있습니다. 플레이어는이 개기구가있는 경우 - 몸과 머리를, 당신은 그들에게 태그를 지정할 수 있습니다 다음, 예를 들어, 그들을 확인 :

void BeginContact(b2Contact* contact) {  
    void* firstFixtureUserData = contact->GetFixtureA()->GetUserData(); 
    void* secondFixtureUserData = contact->GetFixtureB()->GetUserData(); 
    //check if fixtures was with the correct tags 
    if ((int)firstFixtureUserData == kPlayerBody || (int)secondFixtureUserData == kPlayerBody) { 
     if((int)firstFixtureUserData == kGround || (int)secondFixtureUserData == kGround) { 
     player->jump(); 
     } 
    } 
} 

내가이 링크가 도움이 될 것이라고 생각 : jump ability