2012-10-07 64 views
1

反應我有這樣的代碼:Andengine(gles2) - ButtonSprite不要點擊

mButton = new ButtonSprite(400 , 400, myTiledTextureRegion.getTextureRegion(0), myTiledTextureRegion.getTextureRegion(1), 
      activity.getVertexBufferObjectManager(), new OnClickListener() { 

       @Override 
       public void onClick(ButtonSprite pButtonSprite, float pTouchAreaLocalX, 
         float pTouchAreaLocalY) { 

           Toast.makeText(MenuScene.this.activity, "Clicked", Toast.LENGTH_LONG).show(); 


       } 
      }); 

    this.attachChild(mButton); 

我的問題是,當我點擊我的按鈕,我真弄土司消息(登錄同一),並且sprite不會爲myTiledTextureRegion.getTextureRegion(1)更改。我不知道爲什麼?

我可以點擊按鈕,但沒有反應。我嘗試使用AnimatedSprite來測試資源,並正確顯示動畫。爲什麼我的ButtonSprite OnClickListener和sprite在那裏改變不起作用?

辦法,我加載資源:

BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); 
    mBitmapTextureAtlas = new BuildableBitmapTextureAtlas(activity.getTextureManager(), 512, 256, TextureOptions.NEAREST); 
    myTiledTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(mBitmapTextureAtlas, activity, "btn.png", 1, 3); 

    try { 
     mBitmapTextureAtlas.build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(0, 0, 1)); 
     mBitmapTextureAtlas.load(); 
    } catch (TextureAtlasBuilderException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

我所做的一切對我的場景類,因爲我只有一個活動(以及許多場景)。感謝幫助。

回答

5

看看這是問題......你附加按鈕之前this.attachChild(mButton);可以肯定,並與this.registerTouchArea(mButton);

+1

我應該補充說,如果在添加sprint之前或之後註冊觸摸區域,則無關緊要。 – jmroyalty

+0

和sprint = sprite ;-) – jmroyalty

1

嘗試註冊該觸控區域,加上精靈進入現場後,使用方法:scene.setTouchAreaBindingOnActionDownEnabled (真正);