cocos2dx 分辨率适配问题
分辨率适配问题好文章:
http://www.cocoachina.com/bbs/read.php?tid=201987&page=1&toread=1#tpc
http://www.zaojiahua.com/adaptation.html
http://blog.csdn.net/xiaominghimi/article/details/8918235
实践第二个文章,是可行的。这里感谢下作者的分享精神
看代码:
bool AppDelegate::applicationDidFinishLaunching() {
// initialize director
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
//靠近方形的分辨率如 480×320,比例为 3:2,还有 960×540 的16:9 标准宽屏,米3 1920*1080
//这也算是两种总极端情况了,如果能在这两种比例情况做好适配基本就可以了,
//如果比 3:2 “更方”如 4:3,比 16:9 “更长”,那么不论如何布局,
//
//也就是说比例一样的时候用show_all或者no_border都可以完美适配
//通过getVisibleSize()获得的可视区域的大小和通过getWinSize()获得的逻辑大小是一样的就解决了我们的问题。
auto winSize = Size(, );
if(!glview) {
log("glview is null");
glview = GLView::create("test war");
director->setOpenGLView(glview);
glview->setFrameSize(winSize.width, winSize.height);
}
else
{//进入设备的时候是有glview的
log("glview is not null");
}
director->setOpenGLView(glview);
//实际屏幕分辨率
auto frameSize = Director::getInstance()->getOpenGLView()->getFrameSize();
/**if (screenSize.height > designSize.height)
{
director->setContentScaleFactor(screenSize.height / designSize.height);
}*/
//将宽和高做一个比,通过这个比,来具体的调整逻辑分辨率的大小
float widthRate = frameSize.width / winSize.width;//1920 /640
float heightRate = frameSize.height / winSize.height;//1080 / 960
//如果是if中的语句,说明逻辑的高度有点大了,就把逻辑的高缩小到和宽度一样的比率
if (widthRate > heightRate)
{
//里边传入的前俩个参数就是逻辑分辨率的大小,也就是通过getWinSize()得到的大小
glview->setDesignResolutionSize(winSize.width,
winSize.height*heightRate / widthRate, kResolutionNoBorder);
}
else
{
glview->setDesignResolutionSize(winSize.width*widthRate / heightRate, winSize.height,
kResolutionNoBorder);
}
// turn on display FPS
director->setDisplayStats(true);
// set FPS. the default value is 1.0/60 if you don't call this
director->setAnimationInterval(1.0 / );
// create a scene. it's an autorelease object
auto scene = GameMenu::createScene();
// run
director->runWithScene(scene);
return true;
}
cocos2dx 分辨率适配问题的更多相关文章
- Cocos2d-x——Cocos2d-x 屏幕适配新解 – 兼容与扩展【转载】
Cocos2d-x 屏幕适配新解 – 兼容与扩展 本文出自[无间落叶](转载请保留出处):http://blog.leafsoar.com/archives/2013/05-13-08.html 在读 ...
- Cocos2d-x——Cocos2d-x 屏幕适配新解【转载】
Cocos2d-x 屏幕适配新解 本文出自[无间落叶](转载请保留出处):http://blog.leafsoar.com/archives/2013/05-10-19.html 为了适应移动终端的各 ...
- cocos2d-x 多分辨率适配详解(转载),以前北京团队设计的游戏,也是用这套方案
http://blog.csdn.net/kyo7552/article/details/17163487 多种分辨率的适配一直都是一个蛋疼的问题,各家公司可能都有自己的一套方案.今天我为大家介绍的是 ...
- xcode 开发ios兼容性问题的上下黑边 和 coco2d-x 游戏分辨率适配 ResolutionPolicy::FIXED_WIDTH 都会引起上下黑边问题!!!
1:Xcode6在iPhone5+iOS7模拟器上编译,上下有黑边问题 问题描述: Xcode6环境下,对iPhone5或iPhone5s模拟器,在iOS7或iOS7.1下运行,屏幕上下有黑边.在iO ...
- 如何使用cocos2dx-jsbinding 来处理分辨率适配
首先说点题外话,对于任何大型项目来说,coding的规范重要,在cocos2dx-jsbinding这个框架中,javascript是一个绝对核心的脚本语言,99%的游戏逻辑都由js完成.脚本的编写量 ...
- Cocos2d-x 多分辨率适配完全解析
从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念. 有以下相关接口: CCEGL ...
- (16)Cocos2d-x 多分辨率适配完全解析
Overview 从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念. 3.0中有 ...
- cocostudio做出来的界面如何进行分辨率适配,兼论cocos2dx3的多分辨率适配机制,以及retina适配机制
cocos有很多代码实际上都不再使用了,看代码时反而误导了程序员. 比如一个简单的分辨率适配,我查到了setContentSize,然后调用setContentSize,毫无用处啊!于是乎,我到处查资 ...
- Android分辨率适配心得
关于Android分辨率适配,这个是Android开发很头疼的一个问题,也需要花费相当一部分开发时间处理的一个问题,往往一个界面怎么适配就得想半天,特别是新手,也经常有人问我是怎么适配分辨率的,我也不 ...
随机推荐
- mysql 触发器 trigger用法 one (简单的)
实例~~ example1: 创建表tab1 1 2 3 4 DROP TABLE IF EXISTS tab1; CREATE TABLE tab1( tab1_id varchar(11) ...
- 自动化运维工具SaltStack安装配置
SaltStack是一种全新的基础设置管理方式,部署轻松,在几分钟内可运作起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯.通过部署SaltStack环境,我们可以在成千上万台服务 ...
- 20145326 《Java程序设计》第10周学习总结
教材学习内容总结 网络编程 •网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. •程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴. •在发送 ...
- css 基础 - 3
css 基础 - 3 20161128 一. 元素的距离计算 1,两个水平方向的容器s1,s2之间的距离计算为s: s = s1的margin-right + s2的margin-left(+默认 ...
- Java的封装性、继承性和多态性
封装 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 封装的优点: 便于使用者正确.方便的使用系 ...
- [原][osgearth]设置OE的高程,高度场的数据。修改设置高度值
; row < hf->getNumRows(); ++row ) { ; col < hf->getNumColumns(); ++col ) { float val = h ...
- PHP中exit()与die()的区别
PHP手册:die()Equivalent to exit(). 说明:die()和exit()都是中止脚本执行函数:其实exit和die这两个名字指向的是同一个函数,die()是exit()函数的别 ...
- Lightoj-1220
https://vjudge.net/problem/LightOJ-1220 求x=bp中最大的p,x可能为负数. 因数分解,x=p1x1*p2x2*...*pnxn x=(p1x1'*p2x2'* ...
- VM虚拟机安装的XP如何全屏
首先安装install VMwear Tools..,如图:
- javascript垃圾收集
javascript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存.而在C和C++之类的语言中,开发人员的一项基本任务就是手工跟踪内存的使用情况 ,这是造成许多问题的一个根 ...