【问题标题】:Forcing auto-rotation to stop (Android, C++, SDL2)强制停止自动旋转(Android、C++、SDL2)
【发布时间】:2014-12-25 16:03:44
【问题描述】:

我有一个游戏,它通过一个名为 C4Droid 的应用程序在 Android 上运行良好(如果您不了解 C4Droid,只需 google 一下)。它是用 C++ 编写的,并且只使用 SDL2。

它以纵向模式运行,因此,当我在启用自动旋转的情况下倾斜设备时,它会变成横向模式。

现在,我想要做的事情是避免它在自动旋转打开的情况下获得横向。请回答?

【问题讨论】:

    标签: android c++ sdl-2 screen-rotation autorotate


    【解决方案1】:

    像这样在 Manifist 文件中设置方向 android:screenOrientation

      <activity
        android:name="com.androidgames.mreater.MrEaterGame"
        android:label="Mr. Eater" 
        android:screenOrientation="portrait"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    

    【讨论】:

    • 这是一个很好的答案,但没有办法通过使用 SDL2 来做同样的事情吗?如果有,那是什么?我也认为你不了解 C4Droid。请用谷歌搜索! C4Droid 是 Android 中的一种 C++ 环境,您还可以在其中执行 SDL2 的工作,并利用图形。
    【解决方案2】:

    不,没有办法仅在 SDL2 中执行此操作(您可以在 iOS 中,但出于某种原因,它们在 Android 中有所不同)。 wadali 的回答是最好的,这里有一些你可以在你的构建环境中使用它的方法:

    • 使用不同的构建环境。如果您在台式机上构建 APK,您可以控制 AndroidManifest.xml 文件的内容。如果您真的想在手机上执行此操作,还有其他适用于 Android 的 C/C++ 编译器。您失去的部分是 C4Droid 的易用性 - 您需要学习如何自己构建 APK。
    • 像往常一样使用 C4Droid 构建它,然后使用 APK 编辑器提取、编辑和重新打包 AndroidManifest.xml。如果您愿意将 APK 复制到台式机,您可以使用 apktool 解压 APK,编辑您需要的文件,然后重新打包(注意:您需要在执行此操作后重新签名 APK)可以使用);否则,似乎也有一些适用于 Android 的 APK 编辑器实用程序。

    有用于控制方向的 Android API,但您无法从 SDL2 中访问它们。 SDL2 创建自己的 Activity 并且没有任何扩展它或让您提供自己的 Activity 的方法,因此您不能向自己的代码公开额外的 Android API 调用。

    【讨论】:

    • 是的,谢谢伙计。第二点对我来说是正确的答案,结合wadali的回答。很抱歉回复晚了。
    【解决方案3】:

    你知道 SDL_HINT_ORIENTATIONS 吗?

    https://wiki.libsdl.org/SDL_HINT_ORIENTATIONS

    即使 SDL 文档声称它们适用于 iOS,但它们似乎在 Android 中也能正常工作。

    SDL_SetHint(SDL_HINT_ORIENTATIONS, "Portrait");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多