2013-12-16 62 views
0

使用cocos2d-x(C++)獲取設備方向的最佳方式是什麼?如何獲取設備方向

我的Android/iOS應用程序確實支持所有4種設備方向,並且比知道它是橫向還是縱向更重要,我想知道它是否顛倒或不正確。我將不得不從CCLayer中知道。

UPDATE

我試圖得到向右傾斜,左傾斜事件。爲此,我正在計算裝置的夾角。但是,我需要知道設備的方向,才能知道我是左右傾斜。

+0

是不是正面顛倒是正確的?畢竟設備是一個矩形。你倒的感覺可能不是另一個人 – tyczj

+0

@tyczj不爲加速度計 – Daniel

+0

你可能想將它添加到你的問題,然後解釋你的問題是什麼,你正在努力克服 – tyczj

回答

2

儘管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

注: 它不是一個很好的做法,在縱向模式下倒掛旋轉手機,只能在平板電腦的接受。(蘋果公司甚至可能會拒絕你的應用程序因爲這個原因)

讓我知道,如果你想知道如何使用它,但谷歌搜索的關鍵字會給你的用法..

+0

謝謝,但是「它不是一個很好的做法,旋轉手機肖像模式倒掛」是不正確的,完全基於意見。通常情況下,當器件連接到電源的用戶正在使用的應用程序,他將要使用的應用程序顛倒,因爲電纜的。 – Daniel

+0

我希望有將是一個功能... – Daniel

1

一個快速谷歌搜索後:

http://www.cocos2d-x.org/wiki/Device_Orientation

http://www.cocos2d-x.org/forums/6/topics/36414

UDPDATE:

我不認爲你可以將取向確定要從cocos2d-方式X。 然後我想到的唯一解決方案是通過jni進入java並使用android的方法來確定當前的方向。以下是關於如何確定所有4個方向的 link 。至於如何從C++調用java方法,那是另一個球類遊戲。

+0

第一個環節是設置設備的方向,第二個只可決定它是否是在橫向或縱向(在一個相當醜陋的方式)(這是我寫的「比知道如果是橫向或縱向比較重要的原因,我想知道這是否是上下顛倒或不「) – Daniel

+0

如果我的回答指出你在正確的方向,請考慮接受其作爲有效的答案。謝謝。 –

+0

對不起,但答案沒有意義。我正在開發交叉平臺。 – Daniel