在Cocos2d-x中,适应屏幕变得出奇简单。真的是一句话就能搞定。
代码如下:
glview->setDesignResolutionSize(960, 640, ResolutionPolicy::EXACT_FIT);
这句简单的代码要添加到AppDelegate.cpp 的 applicationDidFinishLaunching() 的成员方法中
添加的位置如下:
bool AppDelegate::applicationDidFinishLaunching() {
// initialize director
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLView::create("My Game");
director->setOpenGLView(glview);
}//注意一定要加到if语句外边 才对ios和安卓有效果,加到if里边仅对mac有效果
glview->setDesignResolutionSize(320, 480, ResolutionPolicy::EXACT_FIT);
//喏~上边那行就是了~
srand(static_cast<unsigned int >(time(nullptr)));
// turn on display FPS
director->setDisplayStats(false);
下边来详细说一下这个函数的各个参数:第一个参数 也就是320的位置 是开发时候屏幕分辨率的width,第二个 (480的位置)是 开发时候屏幕分比率Height。第三个参数一般的填写 ResolutionPolicy :: EXACT_FIT就可以了。
第三个参数的含义分别是(本段介绍摘录自官方文档):
1.ResolutionPolicy::FIXED_HEIGHT
保持传入的设计分辨率高度不变,根据屏幕分辨率修正设计分辨率的宽度。
2.ResolutionPolicy::FIXED_WIDTH
保持传入的设计分辨率宽度不变,根据屏幕分辨率修正设计分辨率的高度。
3.ResolutionPolicy::SHOW_ALL
屏幕宽、高分别和设计分辨率宽、高计算缩放因子,取较(小)者作为宽、高的缩放因子。保证了设计区域全部显示到屏幕上,但可能会有黑边。
4.ResolutionPolicy::EXACT_FIT
屏幕宽 与 设计宽比 作为X方向的缩放因子,屏幕高 与 设计高比 作为Y方向的缩放因子。保证了设计区域完全铺满屏幕,但是可能会出现图像拉伸。
5.ResolutionPolicy::NO_BORDER
屏幕宽、高分别和设计分辨率宽、高计算缩放因子,取较(大)者作为宽、高的缩放因子。保证了设计区域总能一个方向上铺满屏幕,而另一个方向一般会超出屏幕区域。