我使用了许多输入控制器。一个用于控制摄像机,另一个用于控制放置在场景中的按钮。
我一直在努力研究如何创建自己的自定义控制器,但到目前为止,找不到有关如何操作的教程是不成功的。
如果触摸或手势低于某个高度,我也想停用相机控制器。
非常感谢任何帮助
答案 0 :(得分:1)
只需创建一个班级CamController implements InputProcessor
(或extends InputAdapter
)
然后覆盖你需要的所有方法(我在这里使用touchDown
作为例子)并执行以下操作(Pseudocode !!!不要复制和粘贴!!!):
protected boolean touchDown(int screenX, int screenY, int pointer, int button) {
boolean handled = false;
if (screenX <= maxX && screenX >= minX && screenY <= maxY && screenY >= minY) {
// The touch is inside the limits of the camera controller, the controller is activated
// Move camera to the touchpoint:
camera.position.set(screenX, screenY);
camra.update();
handled = true;
}
return handled;
}
为按钮创建控制器,控制器再次实现InputProcessor
覆盖方法
接下来在您的ApplicationListener
或Screen
create()
或show()
方法中创建InputMultiplexer
:
InputMultiplexer m = new InputMultiplexer(new CamController(camera, limitX, limitY), new ButtonController);
您只需将InputMultiplexer
设置为有效InputProcessor
使用CamController
作为第一个非常重要,因为它会调用touchDown
- 方法,只有当touchDown
返回false时才调用touchDown
ButtonController
。
希望它有所帮助。