2014-02-19 59 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