【发布时间】:2018-09-23 15:34:58
【问题描述】:
我正在开发一个小型的俯视图游戏。相机可以在一定的视野范围内通过鼠标移动,而使用Gdx.input.setCursorCatched(true)隐藏光标并在屏幕中间绘制一个人造光标。这是处理相机移动的方式:
Vector2 deltaMouse = new Vector2(Gdx.input.getDeltaX() * mouseSensitivity,
-Gdx.input.getDeltaY() * mouseSensitivity);
relativeCameraPosition.add(deltaMouse);
relativeCameraPosition.limit(viewRange);
cameraPosition = playerPosition.cpy().add(relativeCameraPosition);
但是,我遇到了一个问题:游戏正常运行超过 1000 FPS,但是在调用 Gdx.graphics.setVSync(true) 并且 FPS 被限制为 60 之后鼠标灵敏度急剧下降,相机移动速度慢了大约 3 倍。
我检查了一下,发现这个问题与捕获的光标有关。如果我注释掉Gdx.input.setCursorCatched(true) 问题解决并且相机响应不再受帧率影响。但是,显然,这样一来,现在第二个光标就会在整个屏幕上浮动并努力超越它的边界。
【问题讨论】: