LibGDX: ImageButton clicklistener 不工作
LibGDX: ImageButton clicklistener not working
这是我的代码:
Gdx.input.setInputProcessor(this);
bagImage = new Image(new Texture("bag.png"));
bagButton = new ImageButton(bagImage.getDrawable());
bagButton.setSize(125, 125);
bagButton.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
Gdx.app.debug("DEBUG", "clicked");
}
});
}
如果我点击按钮,什么也不会发生。为什么?
您应该 stage
并将 ImageButton
添加到此阶段,然后将 setInputProcessor
添加到此阶段,您只能使用 Image 而不是 ImageButton,因为您不使用 imageUp、imageDown .....
你的代码应该是这样的:
Stage stage = new Stage();
Gdx.input.setInputProcessor(stage);
bagImage = new Image(new Texture("bag.png"));
bagImage.setSize(125, 125);
stage.addActor(bagImage);
bagImage.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y){
Gdx.app.debug("DEBUG", "clicked");
}
});
@Override
public void render(float delta) {
stage.act(delta);
stage.draw();
}
这是我的代码:
Gdx.input.setInputProcessor(this);
bagImage = new Image(new Texture("bag.png"));
bagButton = new ImageButton(bagImage.getDrawable());
bagButton.setSize(125, 125);
bagButton.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
Gdx.app.debug("DEBUG", "clicked");
}
});
}
如果我点击按钮,什么也不会发生。为什么?
您应该 stage
并将 ImageButton
添加到此阶段,然后将 setInputProcessor
添加到此阶段,您只能使用 Image 而不是 ImageButton,因为您不使用 imageUp、imageDown .....
你的代码应该是这样的:
Stage stage = new Stage();
Gdx.input.setInputProcessor(stage);
bagImage = new Image(new Texture("bag.png"));
bagImage.setSize(125, 125);
stage.addActor(bagImage);
bagImage.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y){
Gdx.app.debug("DEBUG", "clicked");
}
});
@Override
public void render(float delta) {
stage.act(delta);
stage.draw();
}