我正在使用libgdx游戏库开发一个仅限桌面的项目,我正在寻找一种方法,当用户水平滚动以平移相机时。如果可能的话,我想避免使用libgdx的scene2d。但是,我看不到找到捕捉水平卷轴的方法。无论如何在Libgdx中检测水平鼠标滚动?如果可能的话,我想避免使用libgdx的scene2d。如果没有,是否有办法使用普通的java,而不使用awt,swing或javafx?
答案 0 :(得分:0)
水平鼠标滚动?除非您使用具有多个滚轮的鼠标,否则没有这样的事情。通常鼠标有一个滚轮。
但是,如果您的意思是水平移动鼠标,则应该能够使用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
}