0

私は自分のプロフィールを横向きにしました:

<activity
    android:name="org.cocos2dx.cpp.AppActivity"
    android:screenOrientation="landscape"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

次に、ゲームを開始し、原点と表示サイズを出力します。

log("DEBUG: origin = %f, %f", origin.x, origin.y);
log("DEBUG: visibleSize = %f, %f", visibleSize.width, visibleSize.height);

出力は次のとおりです: (ところで、設計解像度は 1024 x 768 でした)

D/cocos2d-x debug info: DEBUG: origin = 0.000000, 75.772583
D/cocos2d-x debug info: DEBUG: visibleSize = 1024.000000, 616.454834

「back-home-apps」システム バーが画面の右側にあることに注意してください。また、位置を に設定して画像を画面の中央に配置しようとしましたが(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2)、ご覧のとおり、表示サイズと原点が間違っているため、画像は画面の下部に向かっています。

ここに画像の説明を入力

原点が (0,0) で、表示サイズが (1024 - height-of-system-bar) x 768であることを期待していましたYY-- あたかも Cocos2d-x が、画面が縦向きで、システム バーが画面の下部にあると認識したかのように。

電話が横向きであることをcocos2dに伝えるにはどうすればよいですか?

4

1 に答える 1

0

パズルを解いた。ここで 2 つのこと:

  1. 座標の計算を間違えていました。私が実際にしたことは、((origin.x + visibleSize.width / 2), (origin.y + visibleSize.height / 2)). コードをコピーして貼り付けるのではなく、この質問に入力するのを間違えたため、混乱しました。

  2. この修正後、原点と表示サイズはまだ画面サイズではありません。これは、NO_BORDER ポリシーを使用していることが原因です (質問で言及しませんでした)。Cocos2d はコンテンツを拡大してすべての画面スペースを埋めたため、必要以上に長い軸が中央に固定されました。

于 2016-01-17T18:26:59.933 に答える