使用cocos2d-x(c ++)获取设备方向的最佳方法是什么?

我的Android / iOS应用程序确实支持所有4种设备方向,并且比知道它是横向还是纵向更重要,我想知道它是否颠倒了。

我将必须从CCLayer中知道。

更新

我正在尝试获取右倾斜和左倾斜的事件。为此,我正在计算设备的固定角度。但是,我需要知道设备的方向,才能知道我实际上是向左还是向右倾斜。

最佳答案

尽管cocos2d-x是跨平台的,但几乎没有什么东西与平台有关,例如,如果您看到CCFileUtils,我们有适用于iOS,Android等的单独的实现文件,则跨平台仅由一个标头维护,

记住这一点

在Android中,您可以使用常量获取设备方向,

Surface.ROTATION_0 (no rotation)
Surface.ROTATION_90
Surface.ROTATION_180
Surface.ROTATION_270.


您可以通过调用Display.getRotation()获得
(如果设置了android:screenOrientation:fullSensor,则仅在所有这些方向上旋转)

在iOS中,
您可以使用获取值

UIDeviceOrientationPortrait
UIDeviceOrientationPortraitUpsideDown
UIDeviceOrientationLandscapeLeft
UIDeviceOrientationLandscapeRight


(如果supportedInterfaceOrientations方法返回UIInterfaceOrientationMaskAll,则仅沿所有这些方向旋转)

注意:
将手机倒置为纵向模式不是一个好习惯,只能在其接受的平板电脑上使用。(因此,Apple甚至可能拒绝您的应用程序)

如果您想知道如何使用它,请让我知道,但是使用谷歌搜索关键字将为您提供用法。

10-07 19:55
查看更多