cocos2dx 屏幕适配

我们都知道在手机游戏的设计开发中我们需要考虑游戏移植到手机上后的屏幕展示大小。

当然,手机屏幕的大小是不固定的: 1.安卓机大部分是长宽比例(16:9)

2.苹果机的71:41约等于(16:9)

3.另外还有一些平板电脑是4:3等

分辨率是屏幕所能显示像素的多少。

我们只能在设计中设置游戏展示分辨率的多少并不能去设置实际手机窗口的大小。

所以cocos2dx给我们准备了几种屏幕适配的方法:

(也就是通过设置设计分辨率和手机实际窗口分辨率的大小去适应实际的手机窗口大小)

(1)ResolutionPolicy::EXACT_FIT    :拉伸变形(分别按照宽高因子进行设置)

(2)ResolutionPolicy::NO_BORDER    :按比例放缩(按较大的因子)

(3)ResolutionPolicy::SHOW_ALL     :按比例放缩(按较小的因子)

(4)ResolutionPolicy::FIXED_WIDTH   :按比例放缩(按照宽度比例)

(5)ResolutionPolicy::FIXED_HEIGHT  :按比例放缩(按照高度比例)

假设:屏幕分辨率(fWidth,fHeight) ; 设计分辨率(dWidth,dHeight)。

放缩因子:k1 = fWidth/dWidth ; k2 = fHeight/dHeight。

则适配后的分辨率大小如下:

(1)EXACT_FIT    :( dWidth * k1      , dHeight * k2         )

(2)NO_BORDER    :( dWidth * max(k1,k2) , dHeight * max(k1,k2) )

(3)SHOW_ALL     :( dWidth * min(k1,k2) , dHeight * min(k1,k2) )

(4)FIXED_WIDTH  :( dWidth * k1         , dHeight * k1         )

(5)FIXED_HEIGHT :( dWidth * k2         , dHeight * k2         )

PS:

(1)WinSize        :屏幕大小

(2)VisibleSize    :可视区域大小

(3)VisibleOrigin  :可视区域的左下角坐标

时间: 2024-08-14 10:52:29

cocos2dx 屏幕适配的相关文章

cocos2dx 屏幕适配策略

cocos2dx的常用函数: CCEGLView::sharedOpenGLView()->setDesignResolutionSize() //设计分辨率大小(即开发时为基准的屏幕分辨率) CCEGLView::sharedOpenGLView()->setFrameSize()    //设置win32模拟器的分辨率 CCEGLView::sharedOpenGLView()->getFrameSize()    //屏幕分辨率,实际的硬件参数 3种填充策略: kResolutio

Cocos2D-X屏幕适配新解

” 阅读器 为了适应移动终端的各种分辨率大小,各种屏幕宽高比,在 Cocos2D-X(当前稳定版:2.0.4) 中,提供了相应的解决方案,以方便我们在设计游戏时,能够更好的适应不同的环境. 而在设计游戏之初,决定着我们屏幕适配的因素有哪些?简而言之只有两点:屏幕大小和宽高比.这两个因素是如何影响游戏的呢? •屏幕大小: 从小分辨率 480×320 到 1280×800 分辨率,再到全高清 1080p,从手机到平板,还有苹果设备的 Retina屏,这么多不同的分辨率,而且大小差距甚大,不可能做到一

cocos2dx屏幕适配方案

我们在利用cocos2dx来开发游戏时,在开始时就不可避免的会遇到屏幕适配问题,来使我们的游戏适应移动终端的各种分辨率大小.目前,大家采用的屏幕适配方案不一,网上的资料也比较丰富,下面我也将自己使用的方案做下记录.由于我的Mac系统下只有一个分辨率的虚拟机,所以这次使用的是VS2010,使用的是cocos2dx2.2.2版本. 我这里采用的方案是为不同分辨率的屏幕设置不同资源目录的方案,根据我们的需求需要准备多套资源,但是由于部分分辨率较为接近,所以也不必为所有分辨率都去单独准备资源,可以几种分

cocos2d-x屏幕适配原理分析

cocos2d-x作为著名的cocos2d游戏开发框架的C++实现者,最近一年发展迅猛.越来越多的app使用它实现快速多平台部署,从最初的ios,android,win32等到新近的html5,实现移动,客户端到浏览器全覆盖,不得了~~ 开发移动应用的屏幕适配和爱情一样是一个从洪荒时代就存在的永恒命题,根本目的是实现在不同设备上用户体验的统一. cocos2d-x在cocos2d-2.0-x-2.0.4版本之前没有提供解决的方案,开发者只能自己解决,其中一些方法见 这里从2.0-x-2.0.4开

Cocos2d-x 屏幕适配解决方案

1. setDesignResolutionSize使用方法及主要的三种适配模式 在cocos2d-x 2.0里,提供了一个叫做setDesignResolutionSize的方法,直接一次设置就可以自动适配各种分辨率.这个方法的注释如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 enum ResolutionPolicy { kResolutionExactFit , kResolutionNoBorder , kResolutio

cocos2d-x 屏幕适配

1.如何改成竖屏? RootViewController.mm文件中 return UIInterfaceOrientationIsLandscape( interfaceOrientation ); 改成 return UIInterfaceOrientationIsPortrait( interfaceOrientation );

Cocos2d-x 3.1 一步步做屏幕适配

本文并不想讲关于屏幕适配的概念或者大道理,如果还不了解cocos2d-x屏幕适配的,请先看这篇文章:http://www.cocoachina.com/gamedev/cocos/2014/0516/8451.html.本文有一些内容和图片是引用这篇文章的.看了那么多网上关于屏幕适配的文章,还是觉得似懂非懂,所以最好的方法就是自己一步步做好适配. 一.根据屏幕尺寸选择"最"合适的图片. 如果根据屏幕尺寸来选择一样大小的图片,那么美工要哭了,因为对于安卓机,各种各样的分辨率啊,不仅美工要

cocos 屏幕适配源码分析及VisibleSize,VisibleOrigin

其实这个话题应该是从第一天接触cocos就会碰到的问题,我始终没能完全理解那些文章的意思,只是大概知道是怎么回事,仅此而已,智商捉急呀!!今天也是花了很长的时间去理解,现在总算有点眉目了,就把它记录下来,以后可以常回顾一下. 不废话了,进入正题.所谓的屏幕适配到底需要我们完成什么样的功能呢?这才是我们研究这个问题需要解决的东西,看了很多文章写屏幕适配,大神们总是在侃侃而谈,殊不知我们这些学渣理解能力确实有问题,所以经常一篇文章读下来,确实能理解里面讲的是什么,但是为什么要解决这个问题,为什么要这

cocos2d-x 屏幕自适配

为什么屏幕适配,暂且不说,先看下目前手机的屏幕分辨率,如下: 480*800 // 比如windows phone以及中高端Android机 480*854 //  WFVGA,是480*800的加长版 540*960 // HTC 640*960        // 经典版的iphone 1136*960           // iphone5 1280*720           // 传说中的HD 1280*800 // 三星的9220 1024*768 // ipad 如果我想让我的游