如何制作按键效果AndEngine?

时间:2015-02-14 01:27:20

标签: android button andengine

我想按下按钮显示按下效果。我已经尝试过但不知何故失败了。

这是我的代码:

Sprite btnMultiPLayer = new ButtonSprite(CAMERA_WIDTH/2-BtnMultiPlayerUpITextureRegion.getWidth()/2, 300,   BtnMultiPlayerUpITextureRegion,BtnMultiPlayerDownITextureRegion, this.getVertexBufferObjectManager(), new OnClickListener() {
    @Override
    public void onClick(ButtonSprite pButtonSprite, float pTouchAreaLocalX, float pTouchAreaLocalY) {
        Intent z = new Intent(MainMenuActivity.this, PlayerIdentity.class);
        startActivity(z);            
    }
});
mMainScene.registerTouchArea(btnMultiPLayer);
mMainScene.attachChild(btnMultiPLayer);
mMainScene.setTouchAreaBindingOnActionDownEnabled(true);

由于我没有足够的声誉,我无法直接发布破碎的菜单。

http://imageshack.com/a/img540/5185/Ejs3WV.jpg

有人可以帮助我吗? 我使用Eclipse和AndEngine在Android中开发。

1 个答案:

答案 0 :(得分:1)

采用TiledSprite的方法。基本上,它是一个精灵,可以根据需要在单个图像的不同部分之间切换。例如,请考虑以下图像: Tiled sprite example

通过使用TiledSprite,该图像将被分成两个“图块” - 即部分。默认情况下,将包含此图像的精灵设置为显示图块0(在我们的示例中为左侧部分),但按下时,它将切换到图块1(右侧部分),从而提供按下的效果按钮。代码的大纲将是这样的:

TiledSprite tsprite = new TiledSprite(0,0,tiledregion,getVertexBufferObjectManager()){
    @Override
    public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {pTouchAreaLocalY);
    if(pSceneTouchEvent.isActionDown()){
        tsprite.setCurrentTileIndex(1);
    }
    else{
        tsprite.setCurrentTileIndex(0);
    }
    return true;
}

有关详细信息,请参阅本教程:http://techtopz.in/2013/12/27/andengine-tiled-sprites-tutorial/