2013-07-22 83 views
0

在游戏场景中,当玩家触发时,敌人将自动生成动画并且必须从场景中移出。我尝试了很多,但没有找到解决方案。在游戏场景中重新加载动画精灵Andengine

这里是我的代码。

 it = bulletList.iterator(); 
    while (it.hasNext()) { 
    final Bullet b = (Bullet) it.next(); 

    if (b.sprite.collidesWith(enemy)) { 

       engine.runOnUpdateThread(new Runnable() { 


     public void run() { 
      enemy.animate(new long[]{100,100,100,100,100},10,14,1 
      , new IAnimationListener() { 
      @Override 
      public void onAnimationStarted(AnimatedSprite pAnimatedSprite,int  

    pInitialLoopCount) { 
       } 
     @Override 
       public void onAnimationLoopFinished(AnimatedSprite pAnimatedSprite, 
         int pRemainingLoopCount, int 
      pInitialLoopCount) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
     public void onAnimationFrameChanged(AnimatedSprite pAnimatedSprite, 
       int pOldFrameIndex, int pNewFrameIndex) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
     public void onAnimationFinished(AnimatedSprite pAnimatedSprite) { 
        // TODO Auto-generated method stub 
        detachChild(sprite); 
       } 
      }); 
           enemy.setIgnoreUpdate(true); 
          it.remove(); 
          break; 
        } 
       } 
       } 

回答

0

它究竟发生了什么? 我不明白......

但我理解你的代码bit.And我建议你删除runonupdatethread。 然后将你的动画代码放在runonupdatetheard之外并尝试。

我直接动画精灵......

+0

动画代码是runonupdatethread外部的微小运行,但我想动画它与我的精灵,当子弹(这也与动画代码移动)点击/碰撞。 “b.sprite.collidesWith(enemy)” 当游戏处于运行状态时子弹击中我的精灵时会调用此函数。所以,基本上我想在子弹击中我的对象时更新我的​​线程但不幸的是它不工作。 – developer