2012-04-20 2 views
0

빠른 2 주에서 작업 한 이래로 나는 newbie to and engine입니다. 나는 볼 게임을 개발 중입니다. 볼을 땅에 두 번째로 닿을 때 파괴해야한다는 요구 사항은 다음과 같습니다. 볼 스프라이트에 업데이트 핸들러를 사용해 보았는데, 카운트가 2 (명확하게 로직 제거를 호출)에 도달하면 잘 동작했습니다. 그라운드 바디에 닿는 시간에 Update() 핸들러의 카운트를 사용하여 볼 본문을 소멸시키고 있습니다. . 불운하게 처음으로 (또한 처음 충돌시 2에 도달) 시체가 파괴되고 있습니다. 위의 시나리오는 수시로 반복되며, 연락 청취자와 함께 일했지만 변경 사항은 없습니다. 도움을 주시면 감사하겠습니다.AndEngine : 스프라이트에서 핸들러 업데이트

@Override 
public void onUpdate(float pSecondsElapsed) { 
Shape path = new Rectangle(ballSprite.getX(),ballSprite.getY(), 10, 10); 
if (ballCount <= 2) { 
       mScene.attachChild(path); 
       pathCoordinates.add(path); 
       dumpPathCoordinates.add(path); 
      } 
      if (ballSprite.collidesWith(ground)) { 
       ballCount++; 
       if (ballSprite.collidesWith(ground) && ballCount == 2) { 
        removePath(); 
        removeBall(ballSprite); 
        addFace(10, 10); 
       } 
      } 
     } 
+0

코드를 게시하십시오. 문제가 더 쉽게 이해 될 것입니다. – JohnEye

+0

@JohnEye 코드를 여기에 게시했습니다. –

답변

1

첫 번째 터치가 한 엔진 반복보다 오래 지속될 수 있습니까? 그렇다면이 순서가 발생하는 경우에만 공 제거를 허용해야합니다. touching->not touching->touching. 시퀀스가 ​​ touching->still touching 인 경우에도 지금까지 볼이 제거되었습니다.

+0

답장을 보내 주신 John에게 감사드립니다.하지만 각 엔진 반복마다 다른 행동을 보입니다. 로그 카운트에서 첫 번째 터치 횟수를 추적하는 동안 증가하고 두 번째로 와드에 대해 두 번 증가합니다. 세 번째 반복에서는 두 번 증가하거나 증가하지 않을 수도 있습니다. 행동 분석에 많은 시간을 할애합니다. 그러나 대안이 될 수있는 것은 아무 쓸모가 없습니까? –

+0

당신이 설명한 것은 내가 말한 것과 여전히 일치한다고 생각합니다. 터치는 하나 이상의 반복에 대해 지속될 수 있으므로 카운터는 터치 당 두 번 이상 증가합니다. 다음 터치가 터치되지 않고 적어도 하나 이상의 반복이 선행되어야한다는 조건을 추가하면 카운터는 반복 반복 횟수에 관계없이 올바르게 작동해야합니다. – JohnEye

+0

나는 당신을 얻을 수 없습니다, 당신은 그것을 명확하게 할 수 있습니까? –

관련 문제