我正在使用libgdx游戏库进行一个仅用于桌面的项目,并且我希望实现一种方法,当用户水平滚动以平移相机时。如果可能,我想避免使用libgdx的scene2d。但是,我看不出有什么办法能捕捉到水平卷轴。是否可以检测到Libgdx中的水平鼠标滚动?如果可能,我想避免使用libgdx的scene2d。如果没有,是否有一种方法可以使用普通java,而不使用awt、swing或javafx?
发布于 2017-06-07 00:19:13
水平鼠标卷轴?没有这样的东西,除非你使用的鼠标具有多个滚动轮。通常鼠标有一个滚动轮。
但是,如果您的意思是水平移动鼠标,那么您应该能够使用getDeltaX()捕获鼠标。请注意,这是一个原始输入,因此您需要将其除以屏幕的宽度,以便在您使用的任何监视器上进行相同的移动。您还可能希望包含一个灵敏度乘数,以便用户可以选择摇摄的速度。
通过检查是否按住一个键,允许使用相同输入的摄像机旋转通常是有帮助的。考虑一下这个伪码:
void updateCamera() {
if (LeftShiftPressed()) {
RotateCamera(getNormalizedX());
} else {
PanCamera(getNormalizedX());
}
}
float getNormalizedX() {
return float(getDeltaX()) / float(getScreenWidth())
}
void PanCamera(float x_movement) {
// pan by x_movement * pan_multiplier
}
void RotateCamera(float x_movement) {
// rotate by x_movement * rotation_multiplier
}https://stackoverflow.com/questions/44401434
复制相似问题