2012-04-20 58 views
0

自從在兩星期的快速工作中,我是新手和引擎。我正在開發球賽,我的要求如下,當球第二次接觸地面時,它應該被破壞。我嘗試使用更新處理器上的球精靈,它的工作很好,當計數達到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 2012-04-20 10:55:28

+0

@JohnEye我已經在這裏發佈了代碼。 – 2012-04-20 11:57:13

回答

1

是否有可能第一次觸摸的持續時間超過一次引擎迭代?如果是這樣,只有在發生這種情況時才需要移除球。 touching->not touching->touching。 到目前爲止,即使序列爲 touching->still touching,球也被移除。

+0

感謝您的回覆John,但是對於每次引擎迭代,它的表現會有所不同,而在第一次觸摸計數的日誌貓中進行跟蹤時會增加,而在第二次時,它會增加兩次。對於第三次迭代,它可能會或可能不會增加兩次....它繼續像這樣。花費很多時間來分析行爲。但沒有用,可以選擇什麼? – 2012-04-20 12:25:30

+0

我認爲你所描述的與我所說的一致 - 觸摸可以持續多次迭代,因此計數器每次觸摸增加一次以上。如果添加一個條件,即下一次觸摸必須至少進行一次迭代而不觸摸,則無論單次觸摸持續多少次迭代,計數器都應正常工作。 – JohnEye 2012-04-20 12:33:00

+0

我無法得到你,你能說清楚嗎? – 2012-04-20 13:01:23