zoukankan      html  css  js  c++  java
  • cocos2dx ResolutionPolicy

    FrameSize 参数,在游戏运行时,我们可以通过 CCEGLView::sharedOpenGLView()->getFrameSize();如果在手机上运行,那么不同分辨率将会得到不同的值

    1. CCEGLView::sharedOpenGLView()->setDesignResolutionSize(720, 480, kResolutionShowAll);
    2. CCEGLView::sharedOpenGLView()->setDesignResolutionSize(720, 480, kResolutionExactFit);

    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

     

      kResolutionExactFit 牺牲了画质而保持了全屏显示,对画面进行了拉伸

      kResolutionShowAll 为了保持设计画面比例对四周进行留黑边处理,使得不同比例下画面不能全屏

    kResolutionNoBorder

    其一:游戏画面全屏;其二:保持设置游戏时的宽高比例,相比 kResolutionShowAll 有所区别的是,为了填补留下的黑边,将画面稍微放大,以至于能够正好补齐黑边

    CCEGLView::sharedOpenGLView()->getScaleY()

    ========

    获取设备屏幕实际分辨率需要使用CCSize szFrame = pEGLView->getFrameSize();

    kResolutionNoBorder: 看不到黑边,实际就是宽高等比缩放,但缩放比例取宽比和高比之中大的那一个。

    kResolutionShowAll:全部显示,可以理解为保证内容都显示在屏幕之内,实际也是宽高等比缩放,但缩放比例取宽比和高比之中小的那一个

    setPosition(const CCPoint &position);
    这里传入的参数不是像素,也和传统的point有不同,它指的是在designResolutionSize参照下的坐标

    CCDirector::sharedDirector()->getWinSize();   获取的是designResolutionSize
    CCDirector::sharedDirector()->getWinSizeInPixels();  获取的是getWinSize*contentScaleFactor之后的值

    开发者可以通过CCDirector::sharedDirector()->setContentScaleFactor()来设置contentScaleFactor,这个系数可以理解为
    图片原始尺寸和designResolutionSize的比值,这个比值将用来绘制图片。
    如果只是一套资源按照不同屏幕分辨率缩放,可以不用理会

    使用kResolutionNoBorder策略时要注意的
    CCSize szVisible = CCDirector::sharedDirector()->getVisibleSize();
    CCPoint posVisible = CCDirector::sharedDirector()->getVisibleOrigin();
    使用该策略时,因为标准背景图可能会超出屏幕,所以设置位置时需要已一个可视矩形为基准。
    可以这样理解,szVisible就是你在实际设备上能看到的有效区域的宽高,posVisible就是这个有效区域的起始坐标,和szVisible构成一个可视矩形,一般来说这个可视矩形是设计分辨率下可视矩形的子集

  • 相关阅读:
    [No0000199]设计模式总结
    [No0000197]Windows用户都应该知道的运行命令
    [No000017F]如何监控注册表的修改
    [No0000196]一文读懂Java 11的ZGC为何如此高效
    [No0000195]NoSQL还是SQL?这一篇讲清楚
    [No0000194]聊聊 Chrome DevTools 中你可能不知道的调试技巧
    [No000018A]改善C#程序的建议11-20
    [No000018C]Vim清除上次的搜索高亮结果-Vim使用技巧(1)
    [No000018D]Vim快速注释/取消注释多行的几种方法-Vim使用技巧(2)
    [No000018E]Vim快速跳转任意行、任意列以及高亮显示当前行、当前列方法-Vim使用技巧(3)
  • 原文地址:https://www.cnblogs.com/anjsoft/p/3270155.html
Copyright © 2011-2022 走看看