Libgdx ClickListener无需声明阶段

时间:2018-08-08 16:21:23

标签: libgdx

我想在不创建阶段的情况下使用clicklisterner。我的代码如下:

ClickListener ck = new ClickListener(
 @Override
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            handleClick(event);
            return super.touchDown(event, x, y, pointer, button);
        });
Image button = new Image(buttonTexture);
button.addListerner(ck);


handleClick(Event event){
if(event.getListenerActor==button)
{
 System.out.print('pressed');
 }
}

除非我使用舞台,否则此代码不起作用。出于好奇,是否有任何可选的clicklistener用法未在声明阶段涉及,以便我可以将代码最小化?

1 个答案:

答案 0 :(得分:2)

ClickListener是一个EventListener,打算通过scene2d接收事件。

Stage输入处理器,用于接收输入事件并在适当的参与者上触发它们。

如果您不想使用Stage(scene2d输入处理器),请使用自己的InputProcessorInputAdapter(只是一个适配器类)。

InputProcessor用于接收来自键盘和触摸屏(桌面上的鼠标)的输入事件。为此,必须使用Input.setInputProcessor(InputProcessor)方法进行注册。在调用ApplicationListener.render()之前的每一帧都会调用它。