java– 方向始终结果为纵向(libgdx中的运动控制)

java– 方向始终结果为纵向(libgdx中的运动控制),第1张

概述我的代码如下:Input.Orientationorientation=Gdx.input.getNativeOrientation();message="";switch(orientation){caseLandscape:message+="Landscape\n";break;casePortrait:message+="Portrait

我的代码如下:

input.OrIEntation orIEntation = Gdx.input.getNativeOrIEntation();message = "";switch (orIEntation) {    case Landscape:        message += "Landscape\n";        break;    case Portrait:        message += "Portrait\n";        break;    default:        message += "Whatever\n";}

上面的代码(内部渲染方法)总是表示设备处于纵向模式,即使我旋转设备!我究竟做错了什么?如何准确检测设备是处于纵向还是横向模式?

解决方法:

getNativeOrIEntation()不返回设备的当前方向,当你正确地保持它时,它返回的内容就像屏幕是横向还是纵向一样(在大多数手机上它应该返回肖像,但我想平板电脑和手机如HTC ChaCha它返回景观).

有几种方法可以获得当前的方向:

>推荐:使用Gdx.input.getRotation()以相对于其原始方向返回设备的旋转度(0度,90度,180度,270度).将它与getNativeOrIEntation()一起使用,您应该能够为所有设备获得正确的方向.

注意:它为您提供当前应用状态的方向,而不是设备作为物理对象的方向.因此,如果您的清单中有一个androID:screenorIEntation =“landscape”,则此方法将始终返回格局.

用法示例:

int rotation = Gdx.input.getRotation();if((Gdx.input.getNativeOrIEntation() == input.OrIEntation.Portrait && (rotation == 90 || rotation == 270)) || //First case, the normal phone        (Gdx.input.getNativeOrIEntation() == input.OrIEntation.Landscape && (rotation == 0 || rotation == 180))) //Second case, the landscape device    Gdx.app.log("OrIEntation", "We are in landscape!");else    Gdx.app.log("OrIEntation", "We are in portrait");

>在原生端(AndroID)创建界面,将其传递给游戏.
>如果你使用它作为控件,你应该使用accelerometer或gyroscope

总结

以上是内存溢出为你收集整理的java – 方向始终结果为纵向(libgdx中的运动控制)全部内容,希望文章能够帮你解决java – 方向始终结果为纵向(libgdx中的运动控制)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存