我有一个游戏,其中有一些功能按钮,定义为ImageButtons
。我有一些其他形状,Sprites
。在每种类型的元素上都有自己类型的侦听器。我通过Stage
按钮设置了有效功能按钮“MENU
”。
这是不实际的,因为较新的设备没有MENU
按钮。
@Override
public boolean keyDown(int keycode) {
if ((keycode == Keys.M) || (keycode == Keys.MENU)) {
// some code
}
您如何看待,我该如何取代这种“方法”?
答案 0 :(得分:1)
问题中没有足够的信息。 但无论如何,有一个标准的按钮创建:
oTable.fnClearTable();
oTable.fnAddData(data.aaData);
oTable.fnDraw();
在此之后你可以将按钮链接到新的阶段,设置inputproccessor,这也适用于新设备:
//set the buttonStyle/load texture/etc.
ImageButton playButton = new ImageButton(buttonStyle);
//create a stage
Stage stage = new Stage();
stage.addActor(playButton);
//
//now, set the input processor to this stage
Gdx.input.setInputProcessor(stage);
//and add the clicklistener to the button
playButton.addListener(new ClickListener(){/*override the down/up funcs*/});
希望这会有所帮助。
答案 1 :(得分:0)
我使用InputMultiplexer
解决了这个问题。它非常容易使用并且可以解决问题。你应该这样实现:
public InputMultiplexer(InputProcessor... processors)