应用程序全屏后,Libgdx控制器无响应
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用程序全屏后,Libgdx控制器无响应相关的知识,希望对你有一定的参考价值。
使用以下调用使应用程序全屏显示时:
Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
我不再有来自控制器的信号。从全屏更改显示后问题无法解决,例如:
Gdx.graphics.setWindowedMode(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);
我正在使用Gdx版本:1.9.8。看来这是以前版本中修复的一个问题,但我不确定是什么必要的步骤才能使工作正常运行。这是我发现的关于这个问题的一些帖子:
https://github.com/libgdx/libgdx/issues/4723
https://github.com/GoranM/bdx/issues/518
(这个很老)http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=10692
任何帮助深表感谢。
*编辑:这是使用可以从libgdx设置应用程序检查的控制器扩展。 *
编辑2:如果我重新轮询控制器,我可以得到一个响应控制器,如下所示:
Array<Controller> controllers = Controllers.getControllers();
但是,在改变显示模式后,这不能立即完成;我必须等待一段时间。我不确定我需要轮询什么来确定我必须等到控制器实例有效多久(同样,当它有效分配一个监听器时)。
Edit3:我能够想出的唯一解决方案是在resize回调中设置一个标志,如下所示
@Override
public void resize(int width, int height) {
resizeDirty = true;
resizeTimestamp = System.currentTimeMillis();
}
然后在我的主循环调用中:
private void controllerCheck() {
if (resizeDirty) {
long currentTime = System.currentTimeMillis();
if (currentTime > resizeTimestamp + controllerResetDelay) {
resizeDirty = false;
//get new controller instance | re-add a controller listener
}
}
}
这不是理想的,我宁愿找到一种方法来监听上下文的变化是否已经完成初始化然后更新控制器。但我无法为此找到一个钩子。如果有人知道更好的方法来保持控制器的显示模式改变,我会很感激。
以上是关于应用程序全屏后,Libgdx控制器无响应的主要内容,如果未能解决你的问题,请参考以下文章
Phonegap Cordova - 全屏后底部的黑色状态栏
vm虚拟机全屏后,虚拟机里面的鼠标就不见了,退出全屏也不见了,而且不按CTRL+ALT鼠标也拿不出来。
bootstrap modal在弹出框中播放视频,全屏后chrome按esc后不仅退出视频也退出了modal