繁体   English   中英

Libgdx检测水平滚动

[英]Libgdx Detect horizontal scrolling

我正在使用libgdx游戏库在仅限桌面的项目上工作,并且我正在寻求实现一种当用户水平滚动以平移相机时的方法。 如果可能的话,我想避免使用libgdx的scene2d。 但是,我看不到找到捕获水平滚动的方法。 无论如何,在Libgdx中是否检测到水平鼠标滚动? 如果可能的话,我想避免使用libgdx的scene2d。 如果没有,有没有办法使用纯Java而不使用awt,swing或javafx?

水平滚动鼠标? 除非您使用带有多个滚轮的鼠标,否则不会发生任何事情。 通常,鼠标只有一个滚轮。

但是,如果要水平移动鼠标,则应该能够使用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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM