windows商店应用程序-Cocos2d-x:如何制作全屏背景



在我的cocos2d-x游戏中,我的设计分辨率是768x1024(人像),我使用"kResolutionShowAll"策略(因为我想遵守资产比率)。在某些屏幕分辨率(例如Windows 8 PC 1920 x 1080)上,我的两侧有黑色边框。

我想避开这些边界。我的想法是放置一些图像作为背景,并拉伸它以填充整个屏幕,这样可以避免黑色边界(因此,场景应该在背景之上渲染)。

我的问题是:如何做到这一点?无论我如何缩放背景图像,它总是在显示分辨率内渲染。。。

谢谢!

首先,找出您要瞄准的设备系列的最大分辨率。例如,如果您的目标是Android系列,则最大分辨率为>gt>2560x1600(nexus系列)您可以以这种分辨率创建资产,然后根据设备的不同纵横比对其进行缩放(缩放策略,在您的情况下为"kResolutionExactFit")

顺便说一句,显示边界没有害处,有几个游戏就是这样做的。当我们面对这个问题时,我们应用了与我上面提到的相同的策略(2560x1600分辨率的图像,具有kResolutionShowAll策略);setDesignResolutionSize";至";(16002560)";

因此,在2560x1600分辨率的设备上,它很适合,但在1920x1080/1280x720设备上,有边界。请注意,太大的图像在渲染时也会导致黑屏,即,如果设备无法渲染图像(图像大于设备的最大纹理大小),cocos2dx将不会渲染图像。在这种情况下,您可以使用

CCConfiguration* conf = CCConfiguration::sharedConfiguration();
conf->getMaxTextureSize() // to check if a device is capable of rendering such image, if not you can use a lower resolution version

或者,你也可以有2个不同的设计分辨率。

话虽如此,如果你坚持";kResolutionShowAll";,你的比赛可能看起来有些紧张。为了参考,我分享了不同策略的定义;

kResolutionShowAll

根据屏幕的宽度和高度以及设计分辨率来确定比例因子,选择因子的较小值作为比例因子。这可以确保所有的设计区域都可以显示在屏幕上,但可能会在屏幕上留下一些黑色区域。

kResolutionExactFit

将屏幕的宽度比和设计分辨率设置为X轴上的比例因子,将屏幕的高度比和设计决议设置为Y轴上的缩放因子。这样可以确保设计区域覆盖整个屏幕,但画面可能会被拉伸。

kResolutionNoBorder

根据屏幕的宽度和高度以及设计分辨率来确定比例因子,选择较大的一个作为比例因子。这可以确保一个轴始终可以完全显示在屏幕上,但另一个轴可能会缩小屏幕。

取自,http://www.cocos2d-x.org/wiki/Detailed_explanation_of_Cocos2d-x_Multi-resolution_adaptation

最新更新