如何解决进入全屏后,libGDX 无法捕捉光标 按照try: wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "input selector here"))) except: continue # or pass 的建议,从@Tenfour04切换到lwjgl可以解决这个问题!
我正在编写一个小libGDX
游戏。使用 setCursorCatched(boolean)
捕获光标起初效果很好(隐藏光标符号并且不会让我退出窗口)但随后中断:
- 当我用
F
进入全屏然后用G
退出后,光标可以四面八方转义。 - 在我使用
F
和 2 个显示器进入全屏后,我还可以逃到我的第二个显示器。 - 每帧都使用
setCursorPosition
并不能缓解这个问题。
完整的最小可重现示例(另见 my other question):
package xjcl.extracredits2020
import com.badlogic.gdx.*
class RangeAnxietyGame : ApplicationAdapter() {
override fun create() {
Gdx.input.apply { isCursorCatched = true }
}
override fun render() {
if (Gdx.input.isKeypressed(Input.Keys.F))
Gdx.graphics.setFullscreenMode(Gdx.graphics.displayMode)
if (Gdx.input.isKeypressed(Input.Keys.G))
Gdx.graphics.setwindowedMode(1280,720)
if (Gdx.input.isKeypressed(Input.Keys.ESCAPE))
Gdx.app.exit()
Gdx.input.setCursorPosition(Gdx.graphics.width/2,Gdx.graphics.height/2)
}
}
有没有办法强制光标停留在 libGDX
窗口中?
解决方法
按照try:
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"input selector here")))
except:
continue # or pass
的建议,从@Tenfour04
切换到lwjgl
可以解决这个问题!
在 lwjgl3
中将第一个块更改为第二个块:
build.gradle
api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
还要调整您的导入(例如在 api "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
类中):
DesktopLauncher
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
就我而言,我还需要更新 import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
的配置:
DesktopLauncher
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.samples = 8;
config.height = 720;
config.width = 1280;
config.vSyncEnabled = true;
new LwjglApplication(new RangeAnxietyGame(),config);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。