gpt4 book ai didi

java - 方向总是导致纵向(libgdx 中的运动控制)

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:34 27 4
gpt4 key购买 nike

我的代码如下:

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() 一起使用,您应该能够为所有设备获得正确的方向。

注意:它为您提供当前应用程序状态的方向,而不是设备作为物理对象的方向。因此,如果您的 list 中有 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)创建界面,将其传递给游戏。

  • 如果您将其用作控件,也许您应该使用 accelerometergyroscope相反

关于java - 方向总是导致纵向(libgdx 中的运动控制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com