使用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甚至可能拒绝您的应用程序)
如果您想知道如何使用它,请让我知道,但是使用谷歌搜索关键字将为您提供用法。