我想按下按钮显示按下效果。我已经尝试过但不知何故失败了。
这是我的代码:
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中开发。
答案 0 :(得分:1)
采用TiledSprite的方法。基本上,它是一个精灵,可以根据需要在单个图像的不同部分之间切换。例如,请考虑以下图像:
通过使用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/