我有一款游戏,它通过名为C4Droid的应用程序在Android上运行良好(如果你不了解C4Droid,只需谷歌吧)。它是用C ++编写的,只使用SDL2。
它在纵向上运行,因此,当我打开自动旋转设备时,它会变得风景。
现在,我想要的是做一些事情,即使在打开自动旋转时也能避免它出现。请回答?
答案 0 :(得分:3)
在Manifest文件中设置方向,如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>
答案 1 :(得分:1)
不,只能在SDL2中执行此操作(您可以在iOS中使用,但出于某种原因,他们在Android中使其不同)。 wadali的答案是最好的,这里有一些方法可以在你的构建环境中使用它:
有用于控制方向的Android API,但您无法从SDL2中访问它们。 SDL2创建自己的活动,并且没有任何方法可以扩展它或让您提供自己的活动,因此您不能将其他Android API调用暴露给您自己的代码。
答案 2 :(得分:0)
您了解SDL_HINT_ORIENTATIONS吗?
https://wiki.libsdl.org/SDL_HINT_ORIENTATIONS
即使SDL文档声称它们适用于iOS,它们似乎在Android上也能正常工作。
SDL_SetHint(SDL_HINT_ORIENTATIONS, "Portrait");