Java 需要使用libgdx中的scene2d按钮的帮助吗
我是libGDX的新手。我试图通过扩展com.badlogic.gdx.scenes.scene2d.ui.button来创建自定义按钮 我想要这个类中所有与按钮相关的逻辑。但我不知道如何使点击工作。我读了很多关于添加事件侦听器的教程,但都没有效果Java 需要使用libgdx中的scene2d按钮的帮助吗,java,android,button,libgdx,scene2d,Java,Android,Button,Libgdx,Scene2d,我是libGDX的新手。我试图通过扩展com.badlogic.gdx.scenes.scene2d.ui.button来创建自定义按钮 我想要这个类中所有与按钮相关的逻辑。但我不知道如何使点击工作。我读了很多关于添加事件侦听器的教程,但都没有效果 public class RestartButton extends Button { public RestartButton(ButtonStyle style) { super(style); } @Override public
public class RestartButton extends Button {
public RestartButton(ButtonStyle style) {
super(style);
}
@Override
public void draw(SpriteBatch batch, float parentAlpha) {
batch.draw(TextureProvider.getInstance().getRestart(), 175, 100);
}
}
我正试图在屏幕上添加我的按钮(即在show方法中),如下所示
RestartButton restartButton;
restartButton=new RestartButton(new ButtonStyle());
Stage stage;
stage.addActor(restartButton);
我能在屏幕上看到我的按钮。现在我想做的是添加一些代码,当点击或触摸按钮时会调用这些代码。有人能帮忙吗?它不起作用,因为您需要为按钮设置背景。如果您想在位置(175100)上绘制按钮,您可以直接从button类创建一个按钮并调用
restartButton = new RestartButton(new ButtonStyle());
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
System.out.println("Restart clicked!");
}
});
stage.addActor(restartButton);
按钮。收进边界(x、y、宽度、高度)代码>
然后添加监听器就可以了,因为现在你的按钮在舞台上会有一个位置和一个区域。如果出于自身原因仍需要扩展button类,则可以直接在扩展类中设置边界,也可以在RestartButton类中传递另一个参数。类似于:
public RestartButton(ButtonStyle style, Vector2 position, Vector2 size) {
super(style);
this.setBounds(position.x, position.y, size.x, size.y);
}
然后按钮将自动绘制到您想要的位置,而无需覆盖绘制方法。使用this.addListener(yourListener)添加侦听器代码>
希望有帮助。谢谢@noone。但这是行不通的。重新启动点击!从不显示。Gdx.input.setInputProcessor(阶段)代码>也添加了这个batch.draw(TextureProvider.getInstance().getRestart(),getX(),getY())代码>您正在某个地方绘制它,但按钮实际上在其他地方。因此,您可以随意点击图片,但按钮本身无法识别它。我正在使用stage.draw()来完成此操作。。这还不够吗?很抱歉没有对@noone-answer发表评论,但我的声誉太低了,我不允许:/这正是我在评论中描述的。这与单击侦听器相结合应该可以工作。而且没有理由再延长按钮了。@PrashantOnkar请将其标记为已接受的答案,这样就不会再将其列为未回答。