在景观中Cocos2d-x 3.9错误的原点和可见尺寸?

时间:2016-01-17 01:46:58

标签: android cocos2d-x cocos2d-x-3.x

我把自己的个人资料放在了风景中:

<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);

输出为:(BTW,设计分辨率为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)将图像置于屏幕中间,但正如您所看到的,由于可见尺寸和原点错误,图像朝向屏幕的下半部分

enter image description here

我原以为原点应为(0,0),可见尺寸应为(1024 - height-of-system-bar)x 768.但正如您所见,原点在Y上有一个增量轴和可见尺寸也会在Y轴上受到撞击 - 好像Cocos2d-x认为屏幕处于纵向,系统栏位于屏幕底部。

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

1 个答案:

答案 0 :(得分:0)

解决了这个难题。这里有两件事:

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

  2. 在此修复之后,原点和可见大小仍然不是屏幕大小,这是由我使用NO_BORDER策略引起的(我在问题中未提及)。 Cocos2d放大了内容以填满所有屏幕空间,导致长度超过必要的轴被夹在中间。