2013-04-28 631 views
0

下面我有代碼來每隔一段時間產生一個精靈和一個觸摸方法來擺脫精靈(它工作正常)。我的問題是當一個zombieSprite2產生並且我等待另一個zombieSprite2產生(所以我有兩個相同的精靈在屏幕上),當我觸摸產生它的第一個zombiesprite2時會影響第二個zombiesprite2,第一個沒有任何反應。觸摸方法只能影響最近衍生出來的zombiesprite2嗎?產卵精靈gles2

this.getEngine().registerUpdateHandler(
      zombieSpriteTimehandler = new TimerHandler(5, true, 
        new ITimerCallback() { 

         @Override 
         public void onTimePassed(TimerHandler pTimerHandler) { 
          // TODO Auto-generated method stub 
          zombieSprite2 = new Sprite(0, 200, 
            zombieregion, mEngine 
              .getVertexBufferObjectManager()) { 

           @Override 
           public boolean onAreaTouched(

             final TouchEvent pSceneTouchEvent, 
             final float pTouchAreaLocalX, 
             final float pTouchAreaLocalY) { 
            ScaleModifier sm2 = new ScaleModifier(
              5,zombieSprite2.getScaleX(), 
              zombieSprite2.getScaleX() + 1.03f); 

            zombieSprite2.registerEntityModifier(sm2); 
            if (zombieSprite2.getScaleX() > 1.02f) { 
             zombieSprite2 
               .setColor(Color.TRANSPARENT); 
             mScene.detachChild(zombieSprite2); 
             return true; 

            } 

            return false; 
           } 

          }; 

          mScene.attachChild(zombieSprite2); 

回答

2

你應該爲每個產卵精靈聲明新的對象。這裏你每次存儲精靈的最後一個對象時,在場景&的頂部只聲明一個精靈對象zombieSprite2。所以你有這個效果。

解決方案:

final Sprite zombieSprite2 = new new Sprite(0, 200, 
           zombieregion, mEngine 
             .getVertexBufferObjectManager()) { 

          @Override 
          public boolean onAreaTouched(

            final TouchEvent pSceneTouchEvent, 
            final float pTouchAreaLocalX, 
            final float pTouchAreaLocalY) { // do your works here} 
+0

不要忘了接受的答案,如果它值得。 – 2013-04-29 05:22:49

+0

回覆它,你看到了這一點。謝謝。 – 2013-04-29 05:24:24

+0

謝謝,當我把最終的Sprite zombieSprite2放在我的ontouch方法中時,說本地變量zombieSprite2可能沒有被初始化。在我製作一個公共Sprite zombieSprite2變量之前,這是問題的一部分。對不起,花了這麼長的時間來回復。 – user2300663 2013-04-29 23:58:57