cocos2d-x 3.2 屏幕适配

在手机端开发,屏幕适配是个永恒的话题,主要由于android(ios)碎片化……


网上有很多帖子讲解cocos2d-x 2.x 屏幕适配的帖子,很少关于 3.2的,今天我参考http://blog.csdn.net/liaowenfeng/article/details/8566856点击打开链接

在 3.x 的引擎上研究了哈,屏幕适配……有兴趣的筒子们可以喵喵……吐舌头
原理就不讲了,参考上面的链接,写的很清晰,哎,太懒了……委屈
其实主要就是在 文件 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);
    }
    double mWidth = director->getWinSize().width;
    double mHeight = director->getWinSize().height;
    log("----winSize:width=%f, height=%f;", mWidth, mHeight);
    //glview->setFrameSize(1920, 1080);
    /*设置屏幕适配解决方案*/
    glview->setDesignResolutionSize(480, 320, ResolutionPolicy::NO_BORDER);
    // 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 / 60);

    // create a scene. it's an autorelease object
    auto scene = HelloWorld::createScene();

    // run
    director->runWithScene(scene);

    return true;
}

注意:记得一定要在 glview 创建后 调用 setDesignResolutionSize(width, height, ResolutionPolicy::NO_BORDER); 这个方法哟。不然会异常的。

(width:资源文件的宽;height:资源文件的高)


setDesignResolutionSize函数API:

virtual void setDesignResolutionSize(float  width,
  float  height,
  ResolutionPolicy  resolutionPolicy 
 )  
virtual

设置设计分辨率尺寸

参数
width设计分辨率的宽度
height设计分辨率的高度
resolutionPolicy你选择的期望的分辨率规则: [1] EXACT_FIT 伸展以适配屏幕: 如果你的设计分辨率的宽和高的比例与屏幕的分辨率的比例不同,你的游戏视图就会被拉伸。 [2] NO_BORDER 无边框适配屏幕: 如果你的设计分辨率的宽和高的比例与屏幕的分辨率的比例不同,你的游戏视图的两个区域将会被剪切。 [3] SHOW_ALL 有黑框适配屏幕: 如果你的设计分辨率的宽和高的比例与屏幕的分辨率的比例不同,两侧会出现两个黑色的边框。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值