TestCpp源代码基于Cocos2d-x2.1.3版本号,部分资源来自红孩儿的游戏编程之路CSDN博客地址http://blog.csdn.net/honghaier/article/details/8130947

在VS2010中展开TestCppproject,以下包括46个演示样例文件夹,除此之外,还包括:(1)AppDelegate.h/cpp:程序控制类AppDelegate。(2)controller.h/cpp:演示样例场景管理类TestController。用于显示全部演示样例的菜单。

(3)testBasic.h/cpp:演示样例场景基类TestScene,用于返回到主界面场景。(4)testResource.h:文件资源名称字符串定义头文件(5)tests.h:演示样例总头文件。(6)main.h/cpp:主函数及头文件。

以下具体介绍下每一个文件。

(1)AppDelegate.h/cpp:这两个文件是程序控制类AppDelegate。具体代码例如以下:

//AppDelegate.h
#ifndef _APP_DELEGATE_H_
#define _APP_DELEGATE_H_
#include "cocos2d.h"
class AppDelegate : private cocos2d::CCApplication //AppDelegate类私有继承于CCApplication
{
public:
AppDelegate(); //构造函数
virtual ~AppDelegate(); //析构函数
virtual bool applicationDidFinishLaunching(); //启动应用程序后将调用这种方法。默认的实现中已经包括了游戏启动后的必要准备
virtual void applicationDidEnterBackground(); //应用程序进入后台时,会调用这种方法
virtual void applicationWillEnterForeground(); //该方法与上个方法成对出现。应用程序返回前台时被调用。 };
#endif // _APP_DELEGATE_H_

这个头文件与学习笔记1介绍的一样。以下分析下cpp文件。

#include "AppDelegate.h"
#include "cocos2d.h"
#include "controller.h" //显示菜单的头文件
#include "SimpleAudioEngine.h" //背景音乐播放头文件 USING_NS_CC;
using namespace CocosDenshion; //声明命名空间,以使用SimpleAudioEngine.h AppDelegate::AppDelegate() //构造函数
{
} AppDelegate::~AppDelegate() //析构函数
{
// SimpleAudioEngine::end();
}
bool AppDelegate::applicationDidFinishLaunching() //启动程序调用函数
{
// initialize director:初始化游戏引擎控制器CCDirector。以便启动游戏引擎
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView()); //设置场景显示 CCSize screenSize = CCEGLView::sharedOpenGLView()->getFrameSize(); //获取屏幕大小 CCSize designSize = CCSizeMake(480, 320); //设计屏幕大小
CCFileUtils* pFileUtils = CCFileUtils::sharedFileUtils();//临时为搞明确该类 if (screenSize.height > 320) //
{
CCSize resourceSize = CCSizeMake(960, 640);
std::vector<std::string> searchPaths;
searchPaths.push_back("hd");
pFileUtils->setSearchPaths(searchPaths);
pDirector->setContentScaleFactor(resourceSize.height/designSize.height);//设置屏幕匹配场景
}
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionNoBorder);
// turn on display FPS
pDirector->setDisplayStats(true);//设置启用FPS显示
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60); //设置画图间隔。即屏幕刷新频率
CCScene * pScene = CCScene::create(); //创建场景
CCLayer * pLayer = new TestController(); //创建一个TestController层。用于显示菜单
pLayer->autorelease(); //使用回收池释放层的内存
pScene->addChild(pLayer); //将层增加到场景中
pDirector->runWithScene(pScene); //执行该场景
return true;
}
// This function will be called when the app is inactive. When comes a phone call,it's be invoked too
void AppDelegate::applicationDidEnterBackground() //程序进入后台时调用该方法
{
CCDirector::sharedDirector()->stopAnimation(); //暂停动作
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic(); //暂停背景音乐
SimpleAudioEngine::sharedEngine()->pauseAllEffects(); //暂停全部事件
}
// this function will be called when the app is active again
void AppDelegate::applicationWillEnterForeground() //程序返回前台使用该方法
{
CCDirector::sharedDirector()->startAnimation(); //重新启动动作
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic(); //回复背景音乐
SimpleAudioEngine::sharedEngine()->resumeAllEffects(); //回复全部事件
}

Cocos2d-x学习笔记(17)(TestCpp源代码分析-1)的更多相关文章

  1. Ext.Net学习笔记17:Ext.Net GridPanel Selection

    Ext.Net学习笔记17:Ext.Net GridPanel Selection 接下来是Ext.Net的GridPanel的另外一个功能:选择. 我们在GridPanel最开始的用法中已经见识过如 ...

  2. SQL反模式学习笔记17 全文搜索

    目标:全文搜索 使用SQL搜索关键字,同时保证快速和精确,依旧是相当地困难. SQL的一个基本原理(以及SQL所继承的关系原理)就是一列中的单个数据是原子性的. 反模式:模式匹配 使用Like 或者正 ...

  3. golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍

    golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...

  4. SPSS学习笔记之——Kaplan-Meier生存分析

    SPSS学习笔记之--Kaplan-Meier生存分析 一.概述 关于生存分析的相关概念,Kaplan-Meier用于估计生存函数,允许有一个分组变量进行生存率的组间比较,还容许一个分层变量.若不考虑 ...

  5. C++基础 学习笔记之一:源代码的格式化

    C++基础 学习笔记之一:源代码的格式化 1. 源代码中的标记与空白 C++中的语句是以分号表示语句的结束.在C++中空格和回车以及制表符均为相同作用,即三者通常可以互相替代. 例如可以将一个简单的m ...

  6. Nginx学习笔记4 源码分析

    Nginx学习笔记(四) 源码分析 源码分析 在茫茫的源码中,看到了几个好像挺熟悉的名字(socket/UDP/shmem).那就来看看这个文件吧!从简单的开始~~~ src/os/unix/Ngx_ ...

  7. [原创]java WEB学习笔记17:关于中文乱码的问题 和 tomcat在eclipse中起动成功,主页却打不开

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. NodeJS学习笔记 (17)集群-cluster(ok)

    cluster模块概览 node实例是单线程作业的.在服务端编程中,通常会创建多个node实例来处理客户端的请求,以此提升系统的吞吐率.对这样多个node实例,我们称之为cluster(集群). 借助 ...

  9. Cocos2d-x学习笔记(18)(TestCpp源代码分析-2)

    本章主要讲controller.h/cpp文件的分析,该文件主要用于演示样例场景管理类TestController,用于显示全部演示样例的菜单. //controller.cpp #include & ...

随机推荐

  1. delegate、Func、Action几个常用手法

    委托是我们C#开发当中使用频率非常的高一个手段,好处我就不列举了. 委托早期版本中只有delegate,后期版本有了Func(有返回值)和Action(无返回值)两委托方法. 我这里将列举它们三个常用 ...

  2. 【java】 java 设计模式(1):工厂方法模式(Factory Method)

    工厂方法模式分为三种: 1.普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.首先看下关系图: 举例如下:(我们举一个发送邮件和短信的例子) 首先,创建二者的共同接口:   p ...

  3. swift - UIScrollView 的使用

    本节详细介绍scrollview的用法 ———————————————————————————————————— UIScrollView 是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通 ...

  4. Access数据操作-01

    1.未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 在菜单 “项目”的最下面 工程属性  菜单,选择“生成”选项卡,将目标平台由“Amy CPU”或者“*64”改成“* ...

  5. mysql中根据一个字段相同记录写递增序号,如序号结果,如何实现?

      mysql中根据一个字段相同记录写递增序号,如序号结果,如何实现? mysql中实现方式如下: select merchantId, NameCn, send_date, deliver_name ...

  6. Python 循环退出

    常用语句: break :退出整个循环,循环外的语句继续执行continue :退出本次循环,继续下一次循环pass :什么也不做,相当于在这里占个位置,以便以后修改代码sys.exit() :直接退 ...

  7. Python3 requests 库

    requests 安装 使用 requests 发送 GET 请求 使用 requests 发送 POST 请求 使用 requests 维持会话 使用 requests 访问 HTTPS 使用 re ...

  8. CentOS6.4环境下布署LVS+keepalived笔记

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://400053.blog.51cto.com/390053/713566 环境: 1 ...

  9. jdbc链接数据库,获取表名,字段名和数据

    import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import  ...

  10. poj_3258 二分法

    题目大意 给定区间[0,L],在区间内给定N个数,加上区间的端点总共N+2个值.这N+2个数相邻的两个数之间有一个差值delta[i],现在可以从除去端点之外的这N个数中删除M个,使得剩余的N+2-M ...