LibGDX鼠标事件检测

时间:2018-02-10 07:06:08

标签: java libgdx

我正试图在我的HTML5部署的LibGDX游戏中检测并处理任何和所有鼠标按下/释放事件。我正在努力使用InputAdapter的touchDown和touchUp实现,使用它作为检测和处理所有鼠标按下/释放事件的全能。

似乎如果我按下一个鼠标按钮(例如:左键单击),然后按下并释放另一个鼠标按钮(例如:右键单击),这样,touchUp将无法检测到初始左键单击当用户不再按下左键单击此事件序列时。基本上每当调用touchUp或touchDown时,其他先前鼠标事件的历史记录就会消失并保持“未处理”状态。

我希望对于每次鼠标按下(touchDown()事件),将来某个时候总会有后续的鼠标释放(touchUp()事件)(假设用户没有按住鼠标)基本上“永远”而不释放它。)

Gdx.input.setInputProcessor(new InputAdapter() {
        @Override
        public boolean touchDown(int screenX, int screenY, int pointer, int button) {
            Engine.console("down: " + pointer + " " + button);
            return super.touchDown(screenX, screenY, pointer, button);
        }

        @Override
        public boolean touchUp(int screenX, int screenY, int pointer, int button) {
            Engine.console("up: " + pointer + " " + button);
            return super.touchUp(screenX, screenY, pointer, button);
        }
    });

我预期的行为:

(I physically press left click down)

[LOG] down: 0 0

(I physically press right click down)

[LOG] down: 0 1

(I physically release left click)

[LOG] up: 0 0

(I physically release right click)

[LOG] up: 0 1

实际结果:

(I physically press left click down)

[LOG] down: 0 0

(I physically press right click down)

nothing detected

(I physically release left click)

[LOG] up: 0 0

(I physically release right click)

nothing detected

如何实现预期的行为?

0 个答案:

没有答案