gpt4 book ai didi

java - 使用 InputListener 检测滚动

转载 作者:太空宇宙 更新时间:2023-11-04 15:18:57 24 4
gpt4 key购买 nike

哦,好吧...我遇到了一个问题,我不知道出了什么问题。

我有一个舞台, table 内有一些瓷砖(128x128 大小的方形 Actor )。

我想要做的是,当我向上滚动时,相机缩小,当我向下滚动时,相机放大。我阅读了 libgdx 文档并找到了一种方法来尝试使其工作,但是...缺少一些东西,我不知道它是什么,有点像 InputListener 没有得到我的滚动操作。

为了测试它,我尝试将一些有关滚动操作的信息打印到控制台,但这不起作用。

这是我的输入监听器:

private class MouseEvents extends InputListener{

public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
setDrawable(new TextureRegionDrawable(new TextureRegion(selected)));
}

public void exit(InputEvent event, float x, float y, int pointer, Actor fromActor) {
setDrawable(new TextureRegionDrawable(new TextureRegion(unselected)));
}

public boolean scrolled(InputEvent event, float x, float y, int amount){
System.out.println("ZoomValue: " + amount + " at " + x + "x" + y);
return true;
}

}

进入和退出方法工作完美,但滚动的方法不行,如果我将此监听器添加到图 block 或仅使用scrolled()方法添加到舞台甚至带有图 block 的表格的监听器,则不会发生任何情况.

我的想法是将其添加到舞台上以放大和缩小视口(viewport),但是......好吧,有什么想法吗?

提前谢谢您。

最佳答案

您必须使用 InputProcessor :

public class MyInputProcessor implements InputProcessor {

@Override
public boolean scrolled (int amount){
//Use the ammount wisely!
return false;
}

@Override public boolean keyDown (int keycode) { return false; }
@Override public boolean keyUp (int keycode) { return false; }
@Override public boolean keyTyped (char character) { return false; }
@Override public boolean touchDown (int x, int y, int pointer, int button) { return false; }
@Override public boolean touchUp (int x, int y, int pointer, int button) { return false; }
@Override public boolean touchDragged (int x, int y, int pointer) { return false; }
@Override public boolean touchMoved (int x, int y) { return false; }
}

不要忘记设置它:

MyInputProcessor inputProcessor = new MyInputProcessor();
Gdx.input.setInputProcessor(inputProcessor);

引用:Event Handling

关于java - 使用 InputListener 检测滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20623089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com