libGDX:输入处理器不与组一起工作
我有一个小组,我已经在我的屏幕阶段添加libGDX:输入处理器不与组一起工作,libgdx,scene2d,Libgdx,Scene2d,我有一个小组,我已经在我的屏幕阶段添加 //Code in show() method of my screen MyGroup myGroup = new MyGroup(); Stage stage = new Stage(); stage.add(myGroup); //And also there are few more actors which are omitted Gdx.input.setInputProcessor(stage); //Code in my group p
//Code in show() method of my screen
MyGroup myGroup = new MyGroup();
Stage stage = new Stage();
stage.add(myGroup);
//And also there are few more actors which are omitted
Gdx.input.setInputProcessor(stage);
//Code in my group
public MyGroup extends Group implements InputProcessor{
//Many methods and attributes and a constructor
//Overridden methods of input listener.
在我的小组里,我有5个演员,他们可以互相交换,所以,我不想处理单个演员的任何输入。我想在小组里做这件事
但是当我触摸/触摸拖动时,没有一个方法被调用
请帮助。这是因为您的
MyGroup
未注册为当前活动的输入处理器。您需要使用输入多路复用器
来注册阶段
和您的组
InputMultiplexer inputMultiplexer = new InputMultiplexer();
inputMultiplexer.addProcessor(stage);
inputMultiplexer.addProcessor(myGroup);
Gdx.input.setInputProcessor(inputMultiplexer);
这是因为您的MyGroup
未注册为当前活动的InputProcessor
。您需要使用输入多路复用器
来注册阶段
和您的组
InputMultiplexer inputMultiplexer = new InputMultiplexer();
inputMultiplexer.addProcessor(stage);
inputMultiplexer.addProcessor(myGroup);
Gdx.input.setInputProcessor(inputMultiplexer);
现在我又面临一个问题。也就是说,我从TouchDrawed事件获得的触摸坐标在X轴上镜像。知道为什么会这样吗?这些坐标是屏幕空间坐标。舞台和演员有特殊的方法将坐标转换为不同的坐标系。例如screenToStage或stageToLocal。谢谢@noone。我用照相机。不投射。我将尝试screenToStage和StageToLocal现在我又面临一个问题。也就是说,我从TouchDrawed事件获得的触摸坐标在X轴上镜像。知道为什么会这样吗?这些坐标是屏幕空间坐标。舞台和演员有特殊的方法将坐标转换为不同的坐标系。例如screenToStage或stageToLocal。谢谢@noone。我用照相机。不投射。将尝试screenToStage和stageToLocal