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。但正如你所看到的,原点在Y轴上有一个增量,可见尺寸也在Y轴上受到影响 - ——好像 Cocos2d-x 认为屏幕是纵向的,系统栏在屏幕底部。

如何告诉 cocos2d 手机是横向的?

4

1 回答 1

0

解开了谜题。这里有两件事:

  1. 我错误地计算了坐标。我实际上做的是((origin.x + visibleSize.width / 2), (origin.y + visibleSize.height / 2))。我错误地输入了这个问题而不是复制/粘贴代码,因此造成了混乱。

  2. 在此修复之后,原点和可见尺寸仍然不是屏幕尺寸,这是由于我使用 NO_BORDER 策略(我没有在问题中提及)造成的。Cocos2d 将内容放大到填满整个屏幕空间,导致超出需要的轴被夹在中间。

于 2016-01-17T18:26:59.933 回答