cocos2dx3.0屏幕适配
发布时间:2020-12-14 16:57:54 所属栏目:百科 来源:网络整理
导读:最近看了几篇关于这个文章,自己试验了一下,这里主要使用FIXED_HEIGHT这种模式,用FIXED_WIDTH也一样。 主要思想是: ResolutionPolicy::FIXED_HEIGHT 保持传入的设计分辨率高度不变,根据屏幕分辨率修正设计分辨率的宽度。 ResolutionPolicy::FIXED_WIDTH
最近看了几篇关于这个文章,自己试验了一下,这里主要使用FIXED_HEIGHT这种模式,用FIXED_WIDTH也一样。 主要思想是: ResolutionPolicy::FIXED_HEIGHT 只要在AppDelegate.cpp的AppDelegate::applicationDidFinishLaunching()方法中加几句代码即可: bool AppDelegate::applicationDidFinishLaunching() { // initialize director auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) //在Win32下面做测试,假设手机分辨率(屏幕尺寸)是800x480 glview = GLViewImpl::createWithRect("My Game",Rect(0,800,480),1.0f); #endif } director->setOpenGLView(glview); // 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 / 30); auto frameSize = glview->getFrameSize();//获取屏幕尺寸, //我们的设计分辨率是800x480 auto winSize = Size(800,480); //设置设计分辨率的和适配模式,进去看setDesignResolutionSize和updateDesignResolutionSize这两个个方法的源码可以知道, //下面这句代码走完之后,设计分辨率的高度被设置成480,但是宽度并不是800,而是做了缩放 director->getOpenGLView()->setDesignResolutionSize(winSize.width,winSize.height,ResolutionPolicy::FIXED_HEIGHT); //下面这个是关键 director->setContentScaleFactor(frameSize.width/director->getOpenGLView()->getDesignResolutionSize().width); // create a scene. it's an autorelease object auto scene = LoginScene::createScene(); // run director->runWithScene(scene); return true; } 用到了下面这些接口:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |