cocos2dx3.3开发FlappyBird总结五:说说屏幕适配

官方网站中有一篇教程,是关于适配问题的,笔者也是通过阅读后,才了解一些,希望大家好好阅读,必定受益匪浅:

http://cn.cocos2d-x.org/tutorial/show?id=2360

此处笔者采用的是ResolutionPolicy::EXACT_FIT,即完全显示。
由于背景图片资源的宽高为288:512,因此这里把设计分辨率为288:512,在bool AppDelegate::applicationDidFinishLaunching()中修改相应地方:

    if(!glview) {
        glview = GLViewImpl::createWithRect("FlappyBird",
                                            Rect(0, 0, kDesignWidth, kDesignHeight));
        director->setOpenGLView(glview);
    }

    director->getOpenGLView()->setDesignResolutionSize(kDesignWidth,
                                                       kDesignHeight,
                                                       ResolutionPolicy::EXACT_FIT);

这两个被写成宏了,因为其他地方需要用到。

笔者还是菜鸟一枚,因此对适配理解还不够,而且未做过商业性手游,如果有不合理的地方,请大家指出,谢谢!!

时间: 2024-09-19 12:22:44

cocos2dx3.3开发FlappyBird总结五:说说屏幕适配的相关文章

Android开发入门(五)屏幕组件 5.4 TableLayout表格布局

TableLayout可以把视图views组织成"行"或"列".可以使用<TableRow>元素指定表格中的一行 .每一行又可以包含一个或多个视图.每行中的每个视图组成了表格的一个元素.每列的宽度,取决于这一 列中宽度最大的视图view. 观察main.xml中的代码: <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:androi

Android开发入门(五)屏幕组件 5.7 ScrollView滚动视图

ScrollView是一种特殊的FrameLayout,使用ScrollView可以使用户能够滚动一个包含views的列表,这样 做的话,就可以利用比物理显示区域更大的空间.有一点需要注意一下,那就是ScrollView只能包含一个子 视图view或ViewGroup(这个ViewGroup通常是LinearLayout). 不要混合使用ListView和ScrollView .ListView被设计用来显示一些相关的信息,同时,ListView也已经被优化了去显示大量的列表lists. 下面的

Android开发入门(五)屏幕组件 5.6 FrameLayout帧布局

FrameLayout就是屏幕上的一个"定位器",可以使用它去显示一个单一的视图.被添加到FrameLayout上 的视图views总是被固定在这个布局的左上角.考虑以下的代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" an

Android开发入门(五)屏幕组件 5.5 RelativeLayout相对布局

使用RelativeLayout,可以通过设置"相对位置"(每个View相对于另一个view的位置),来指定它所包 含的子view的位置.看下面main.xml中的代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" androi

Android开发入门(五)屏幕组件 5.3 AbsoluteLayout绝对布局

使用AbsoluteLayout,可以指定它其中的子View的确切位置.观察如下main.xml中的代码: <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" and

cocos2dx3.3开发FlappyBird总结四:资源管理类

游戏中需要全局管理很多的资源,如图片.音频文件等.下面我们设计一个骨骼资源管理类,名叫:AtlasLoader,设计为全局共享类,用于载入资源和通过资源名称获取精灵帧. 下面先上头文件: #ifndef __EngryBird__AtlasLoader__ #define __EngryBird__AtlasLoader__ #include "cocos2d.h" /** * The struct of the atlas file */ typedef struct tag_atl

cocos2dx3.3开发FlappyBird总结十五:记录玩家得分

在游戏结束时,需要更新和获取最新得分. 设计一个工具类,只有类方法,这样外部就能很方便地获取和更新值. /** * This is a help class, using to operate the user information conveniencely */ class RecordTool { public: /** * Get the best score with a key, store in the UserDefault */ static int getBestScore

cocos2dx3.3开发FlappyBird总结九:欢迎场景(WelcomeScene)

欢迎场景的任务是无限滚动地面,小鸟原地挥动翅膀,显示开始游戏按钮,点击时才开始玩游戏. 先上图: 这个场景中,有一个标题:FlappyBird 一只小鸟,小鸟的颜色是随机生成三种中的一种 一个开始按钮 无限滚动的地面 在初始化时,生成当前时间来显示白天还是黑夜背景. // Get the current time, judge whether now is day or night time_t t = time(NULL); tm *localTime = localtime(&t); int

Android开发入门(五)屏幕组件 5.2 LinearLayout线性布局

LinearLayout把视图组织成一行或一列.子视图能被安排成垂直的或水平的.想知道LinearLayout是如何 工作的,首先考虑一下典型的mail.xml文件. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width