2014-02-19 58 views
0

我的代码是这样的:如何检查随机产生精灵的价值Andengine

while(x<30) 
{ 
    int randomvalue= generaterandomnumber(); 
    Sprite backgroundSprite = new Sprite(location[coordx], location[coordy], spritetobegenerated[randomvalue-1].deepCopy(),getVertexBufferObjectManager()) 
    (Touchevents) 
    x++; 
    } 

精灵保存在名为spritetobegenerated []精灵的数组。

由于代码随机生成这些精灵,我需要一些方法来了解触摸事件发生时涉及哪个精灵。

回答

0

一,你需要重写onAreaTouched功能的每一个角色,这样说:

例:

for (int i = 0; i < SPRITE_COUNT; i++) { 
    float x = (float) (Math.random() * CAMERA_WIDTH); 
    float y = (float) (Math.random() * CAMERA_HEIGHT); 

    final Sprite face = new Sprite(x, y this.mFaceTextureRegion, this.getVertexBufferObjectManager()) { 
     @Override 
     public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) { 
      this.setX(this.getX() + 1); 
      return true; 
     } 
    }; 
    scene.attachChild(face); 
    scene.registerTouchArea(face); 
} 
scene.setTouchAreaBindingOnActionDownEnabled(true); 

II。我会扩展一个自己的Sprite类,例如:MySprite,我在这里重写onAreaTouched函数,我也会引入一个索引。之后,我会把一个开关(或if)语句放入onAreaTouched取决于精灵索引。

+0

对于I.:由于精灵正在循环中创建,@Override如何影响它? – beelinespace

+0

每个精灵都有自己的onAreaTouched功能,您可以覆盖 (我之前提到过索引:不确定是否有必要。) – voodoo98

+0

我的答案已被编辑。 – voodoo98