我在屏幕底部设置了admob横幅。
我想要抵消一切,以免横幅遮挡任何内容。
我不知道如何动态地获得admob横幅的高度。
对于iphone4,120是admob的高度,但对于iphone 6,它是100。
我猜这是与缩放屏幕有关的事情,但我无法弄清楚。
我的屏幕在AppDelegate.cpp
中设置如下cocos2d::Size designResolutionSize = cocos2d::Size(1136, 768);
and
glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::NO_BORDER);
答案 0 :(得分:0)
cocos2dx中没有像cm
选项那样的真实指标,事实上我们并不需要它。
但cocos2D-x 2.x和3.x可以很容易地解决多分辨率问题(iDevices或Android设备)正如您在Multi-resolution support document中看到的那样。
事实上,您只需设置DesignResolution
,然后想象您的目标设备将具有此分辨率。
如果目标设备确实具有此分辨率(或任何其他具有相同比率的分辨率),cocos2d将处理以修复屏幕,并且您的游戏在所有设备中看起来都相同。
当目标设备的比例不同时,您有很多选项(policy
)来管理它。
例如,如果您使用Exact fit
政策,cocos2d会强制您的游戏(和设计)适合目标设备屏幕(没有黑色边框)。
完全合适
整个应用程序在指定区域中可见而不尝试 保持原始宽高比。可能会发生失真,而且 应用程序可能会出现拉伸或压缩。
有关详细信息,请查看official wiki。
除了上述所有内容之外,我发现This Link(来自V-Play引擎)及其Safe Zone
定义非常有趣,我强烈建议您使用此页面的推荐分辨率值进行工作就像我一样。
虽然这个链接来自另一个引擎,但描述可以帮助您更好地理解所有内容。以下是此页面术语与cocos2d-x术语之间的映射:
V-Play :: letterbox => Cocos2dx ::全部显示
V-Play :: ZoomToBiggerSide => Cocos2dx :: NoBorder
此外,您确实在cocos2dx开发中询问了所需的图像大小:
如您所知,不同尺寸的图像不是关于不同分辨率的游戏外观,您可以针对每种资产发布一种尺寸的游戏,并且您的游戏/应用在所有分辨率中看起来都很好,上面有解析政策的描述。 / p>
但我们需要为每个资产提供多个图像大小,以优化内存使用。在这种情况下(作为cocso2dx解决方案)我们检查设备大小并标记适当的图像集(每个图像集在一个具有相同结构/不同大小的文件夹,如HDR / HD / SD)作为资源的默认文件夹:
CCSize frameSize = pEGLView->getFrameSize();
if (frameSize.height > mediumResource.size.height)
{
searchPath.push_back(largeResource.directory); //mark HDR default
pDirector->setContentScaleFactor(largeResource.size.height/designResolutionSize.height); //handle scaling because of different between our programming-design-resolution and artist-design-canvase-resolution
}
else ...