【唠叨】

入口类AppDelegate.cpp是游戏程序的入口。


【AppDelegate.cpp】

这是游戏程序的入口,主要用于游戏程序的逻辑初始化,并创建运行程序的入口界面(即第一个游戏界面场景)。

里面有三个方法:

//applicationDidFinishLaunching();  //逻辑初始化applicationDidEnterBackground();  //切换到后台applicationWillEnterForeground(); //切换到前台
//

源码分析:

//bool AppDelegate::applicationDidFinishLaunching() {//初始化一个导演, 只能有一个导演auto director = Director::getInstance();//使用OpenGLViewauto glview = director->getOpenGLView();if(!glview) {glview = GLView::create("My Game");glview->setFrameSize(480, 320);     //程序窗口标题director->setOpenGLView(glview);}//屏幕适配,设置游戏设计的分辨率glview->setDesignResolutionSize(480, 320, ResolutionPolicy::SHOW_ALL);//开启状态显示, 帧数,精灵数等director->setDisplayStats(true);//刷新频率,每秒60帧。director->setAnimationInterval(1.0 / 60);//创建一个场景HelloWorld,这是游戏程序的第一个界面auto scene = HelloWorld::createScene();//运行director->runWithScene(scene);return true;}// 切换到后台void AppDelegate::applicationDidEnterBackground() {//暂停游戏Director::getInstance()->stopAnimation();//暂停音乐SimpleAudioEngine::getInstance()->pauseBackgroundMusic();}// 切换到前台void AppDelegate::applicationWillEnterForeground() {//继续游戏Director::getInstance()->startAnimation();//继续音乐SimpleAudioEngine::getInstance()->resumeBackgroundMusic();}
//

讲到这里,大家可能会感到疑惑。为什么会设置了两次分辨率大小呢?

setFrameSize(480, 320);

setDesignResolutionSize(480,320,ResolutionPolicy::SHOW_ALL);

朋友们,这两个的意义是不一样滴。

setDesignResolutionSize 是设置了我们游戏设计时候的分辨率,即想要适配的宽480高320的屏幕比例。也就是说设计者初衷的游戏分辨率屏幕大小。但是对于每个用户来说,他们使用的设备不一定是(480,320)的,比如手机有大有小。而后面的 ResolutionPolicy::SHOW_ALL 参数意思是按照原比例(480/320)进行放缩以适配设备的实际屏幕。

setFrameSize(480, 320) 则是设置我们预想设备的屏幕大小,也就是应用程序窗口的大小。

以下贴了几张对比图,加深理解。

1、这是原图片大小,窗口大小为480 * 320。

2、若设置窗口大小为setFrameSize(960, 640),而不设置设计分辨率放缩比例ResolutionPolicy::SHOW_ALL 的情况下,图片不放缩,原图还是480 * 320。

3、设置了 ResolutionPolicy::SHOW_ALL 之后,图片放缩到适配整个屏幕960 * 640 了。

转载于:https://blog.51cto.com/shahdza/1550087

cocos2dx[3.2](5) ——入口类AppDelegate.cpp相关推荐

  1. cocos2dx ios入口类_2.cocos2d-x 第一个项目

    大家看到了cocos2d-x引擎提供的5种可选择的模板. cocos2dx:标准模板(无物理类库,无脚本类库) cocos2dx_box2d(box2d物理游戏模板) cocos2dx_chipmun ...

  2. jni/../../Classes/AppDelegate.cpp:29: error: undefined reference to 'StartLayer。而且没生成libgame.so文件...

    分类:cocos2d-x环境搭建常见问题2014-01-23 15:05304人阅读评论(0)收藏举报 <1>报错. G:/AndroidCocos2dxFile/android-ndk- ...

  3. SpringBoot 多个src文件夹,入口类的位置

    入口类的位置只要保证package可以实现就行了 只要我们保证接口所在包从路径,比Application类所在的路径多一个层级就行 访问: 默认的端口是8080,希望对有所帮助

  4. springboot扫描组件_SpringBoot入口类和@SpringBootApplication详解

    SpringBoot项目创建完成之后默认会生成一个*Application的入口类,通过该类的main方法即可启动SpringBoot项目. @SpringBootApplication(exclud ...

  5. 关于Cocos2d-x中对其他某个类的某个属性的获得

    类A要获得类B中的某个属性,可以是节点属性 方法一 1.先在B类中定义一个_edge的节点属性(可以在B类中进行各种对_edge的操作),然后写一个方法 Node* GameController::g ...

  6. Android Bug分析系列:第三方平台安装app启动后,home键回到桌面后点击app启动时会再次启动入口类bug的原因剖析...

    前言 前些天,测试MM发现了一个比较奇怪的bug. 具体表现是: 1.将app包通过电脑QQ传送到手机QQ上面,点击安装,安装后选择打开app (此间的应用逻辑应该是要触发 [闪屏页Activity] ...

  7. Spring Boot 2.x 启动全过程源码分析(上)入口类剖析

    转载自   Spring Boot 2.x 启动全过程源码分析(上)入口类剖析 Spring Boot 的应用教程我们已经分享过很多了,今天来通过源码来分析下它的启动过程,探究下 Spring Boo ...

  8. jar命令指定入口类

    2019独角兽企业重金招聘Python工程师标准>>> 加参数"e"为指定入口类,入口类一定要在xxx.jar的下一个参数 如下形式 ,打包当前目录下的所有文件, ...

  9. Spring Boot入口类

    入口类的代码很简单,代码如下: package com.example.demo;import org.springframework.boot.SpringApplication; import o ...

最新文章

  1. 判断奇偶microsoft visual basic_#梅园# 在心理学上面如何判断一个男生暗恋你的表现...
  2. 域名注册商标_科技述说:一起了解网络域名的由来
  3. NTRIP/ SUPL
  4. 前端学习(2177):vue-router得参数传递
  5. c语言编程安全队列,C语言编程队列的实现
  6. MySQL主从失败:slave_IO_Running为No
  7. C++基础与深度解析第六章:函数
  8. CentOS系统性能工具 sar 示例!
  9. 调用iframe 中的js[兼容各种浏览器]
  10. 在更新查询中可以使用计算机功能,ACCESS试题1.doc
  11. 金融用计算机,CFA考试指定计算器使用攻略
  12. 计算机应用专业职业价值观,计算机应用技术专业大学生职业生涯规划书.doc
  13. 7种常见分布的数学期望及其证明
  14. 《Universal Language Model Fine-tuning for Text Classification》翻译
  15. 贪心算法、分治算法和动态规划的区别
  16. 前端界扛把子|千锋前端入门到精通视频教程免费学习了
  17. MySQL中间件Atlas安装及使用
  18. xilinx 统一安装包下载(vivado vitis petalinux等)
  19. UI测试脸型软件,扫一扫脸型配发型
  20. 雷军“患”上了人才焦虑症

热门文章

  1. mysql能安装的版本下载失败_mysql 安装失败 每次都安装失败 每个版本都失败
  2. Linux下脚本实战之系统监控
  3. Java高并发编程(一):并发编程的挑战
  4. docwizard c++程序文档自动生成工具_工具用的好,老师下班早!老师的高效办公利器都在这!...
  5. Linux下scp无密码上传 下载 文件 目录的方法
  6. 搭建mongodb分片
  7. markdown分享
  8. kali linux 2.0配置更新源后apt-get update 报错
  9. LeetCode-两个结构分别遍历,然后合并
  10. sm4加密 解密(oc)