首页 > 技术文章 > Cocos2d-x中的屏幕适配模式

linchaolong 2014-09-06 21:42 原文

原文地址:http://www.cocoachina.com/cocos/20140408/8119.html

分辨率适配
为了能更好的适应各种分辨率大小和屏幕宽高比的移动终端设备,游戏的开始,我们还是先来看看分辨率的适配设置。 
 
打开AppDelegate.cpp文件,在applicationDidFinishLaunching函数里面添加如下代码,以便我们的游戏,能够更好的适应不同的运行环境。
  1. // 分辨率适配 
  2. glview->setDesignResolutionSize(320.0, 480.0, ResolutionPolicy::FIXED_WIDTH); 
  3. std::vector<std::string> searchPath; 
  4. searchPath.push_back("w640"); 
  5. CCFileUtils::getInstance()->setSearchPaths(searchPath); 
  6. director->setContentScaleFactor(640.0 / 320.0); 
  
设计分辨率是通过setDesignResolutionSize(width, height, resolutionPolicy)方法来设置的,第一,二个参数分别是设计分辨率的宽度和高度,第三个参数是你想要的模式。这里设置的分辨率大小是开发时为基准的屏幕分辨率大小。
 
模式有五种: 

1)EXACT_FIT 整个游戏内容都会在屏幕内可见,并且不用提供比例系数。x,y会被拉伸,使内容铺满屏幕,所以可能会出现形变,所有的应用程序看起来可能会是拉伸或者压缩的。

2)NO_BORDER 一个方向铺满屏幕,另外一个方向超出屏幕,不会变形,但是可能有一些裁剪。

3)SHOW_ALL 该模式会尽可能按原始宽高比放大游戏世界,同时使得游戏内容全部可见。内容不会形变,不过可能会出现两条黑边,即屏幕中会有留白。

4)IXED_WIDTH 该模式会横向放大游戏世界内的内容以适应屏幕的宽度,纵向按原始宽高比放大。

5)FIXED_HEIGHT 与上一中模式相反。

setSearchPaths()方法设置资源搜索路径,这里w640是搜索的文件夹名。
 
setContentScaleFactor()方法设置内容缩放因子,顾名思义,就是设置整个游戏内容放大或者缩小的比例系数。
 
更多分辨率适配细节,参考《Cocos2d-x 多分辨率适配完全解析》

推荐阅读