cocos2dx游戏开发——微信打飞机学习笔记(四)——GameScene的搭建
一、创建文件
首先呢,就是那个创建新的.h 和 .cpp 的文件,然后可以起名为GameScene
最重要的就是一定要创建在Classes的目录下哦= =,别手抖= =。
二、GameScene.h和GameScene.cpp
简单来说就是先搭建一个空的场景,为了以后一些游戏主题的层做一个容器,然后我们应该怎么处理呢?
然后呢……先贴代码~
//GameScene.h
#ifndef WeiXinDaPlane_GAME_SCENE_H__
#define WeiXinDaPlane_GAME_SCENE_H__ #include "cocos2d.h" USING_NS_CC; class GameScene: public Scene
{
public:
GameScene();
~GameScene(); virtual bool init(); //这是二段式的设计模式~就是把创建和初始化分开,详情请见子龙山人的博客~ CREATE_FUNC(GameScene); protected: private:
};
简单的来说就是继承了Scene之后,创建一个空的Scene。
1、CREATE_FUNC(GameScene),上节已详述,就是cocos2d封装的一个创建和初始化的宏定义~。
2、init() 是继承Scene的,基本上GameScene的操作最后都是要从这里加入的~
然后是cpp,就是很简单的实现一下下,做一个空的容器而已~
#include "GameScene.h" GameScene::GameScene()
{ } GameScene::~GameScene()
{ } bool GameScene::init()
{
if (!Scene::init())
{
return false;
} return true;
}
三、WelcomeScene 切换到 GameScene
大家是否还记得WelcomeScene那里是有个LoadIng的动画,我们需要做的就是在Loading动画后加入一个转场的操作,这里需要一个动作序列,大家请看代码~
auto animation = Animation::create();
animation->setDelayPerUnit(0.5f);
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("game_loading1.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("game_loading2.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("game_loading3.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("game_loading4.png"));
auto animate = Animate::create(animation); auto animationDone = CallFunc::create(
[=](){
auto scene = GameScene::create();
auto transition = TransitionSlideInB::create(, scene);
Director::getInstance()->replaceScene(transition); }); auto sequence = Sequence::create(animate, animationDone, NULL); gameLoading->runAction(sequence);
3、所谓的sequence就是一个动作的序列,你可以把多个连续的动作合并创建出一个sequence,然后让对象直接run这个sequence,就会把所有的动作按顺序执行一遍。
4、然后转场的关键地方就是在那个animationDone,这里是一个XXX表达式(小白~~不知道如何表达),就是一个隐式的函数(没有函数名),然后其中的内容就是,实例化一个GameScene,加入一个过场动画,然后让Dicrector执行这个动画就会转场啦~。
然后默默放出效果图~

然后就看下一节吧~
cocos2dx游戏开发——微信打飞机学习笔记(四)——GameScene的搭建的更多相关文章
- cocos2dx游戏开发——微信打飞机学习笔记(三)——WelcomeScene的搭建
一.场景与层的关系: cocos2dx的框架可以说主要由导演,场景,层,精灵来构成: 1.其中导演,意如其名,就是操控整个游戏的一个单例,管理着整个游戏. 2.场景就像电影的一幕剧情,所以说,懂得如何 ...
- cocos2dx游戏开发——微信打飞机学习笔记(七)——Enemy的搭建
一.文件创建~ Enemy.h Enemy.cpp 二.How to do? 由于我是已经完成成个游戏的功能,所以我会将游戏中enemy所需要的很多功能基本上都先考虑到了,如果大家自己在做的时候也许没 ...
- cocos2dx游戏开发——微信打飞机学习笔记(一)——开发准备
一.环境的搭建 1.Windows开发准备: (1)软件下载及安装 •下载Cocos2d-x 最新版本:http://www.cocos2d-x.org/download 或者从Cocos2d-x G ...
- cocos2dx游戏开发——微信打飞机学习笔记(九)——BulletLayer的搭建
一.创建文件~ BulletLayer.h BulletLayer.cpp 二.How to do? (1)实例化BulletLayer方法的实现~ Bullet(PlayerLayer* temp) ...
- cocos2dx游戏开发——微信打飞机学习笔记(八)——EnemyLayer的搭建
一.创建文件= = EnemyLayer.h EnemyLayer.cpp Ps:我绝对不是在凑字数~. 二.How to do? (1)一些宏 ...
- cocos2dx游戏开发——微信打飞机学习笔记(五)——BackgroundLayer的搭建
一.创建文件~ 文件名:BackgroundLayer.h BackgroundLayer.cpp 架构就跟前面的一样,我就直接进入正题 啦,而且github有完整代码,欢迎下载~ 二.创建滚动的背景 ...
- cocos2dx游戏开发——微信打飞机学习笔记(十)——碰撞检测的搭建
一.七说八说 大家都发现了= =,做了那么多,发现就是摆设,完全没有打飞机的感觉,没有实现碰撞的监测.比如说呢,子弹和敌机,玩家与敌机就是需要有碰撞检测的说,然后在这篇我想会很长很长的教 ...
- cocos2dx游戏开发——微信打飞机学习笔记(二)——游戏框架
一.游戏的基本框架: WelcomeScene ——> GameScene ——> GameOverScene || ...
- cocos2dx游戏开发——微信打飞机学习笔记(六)——PlayerLayer的搭建
一.创建文件~ PlayerLayer.h PlayerLayer.cpp 一般类名都会和文件名有关系的~(在这里当然是一样) 二.How to do? 1.首先就是放一个飞机~ CC_SYNTHES ...
随机推荐
- RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大、最高效的方法之一。它为在分布式计算环境中运行的几乎所有应用程序提供基础。
RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大.最高效的方法之一.它为在分布式计算环境中运行的几乎所有应用程序提供基础.本文介绍 RPC 客户机和服务器之间基本的事件流 ...
- L18 如何快速查找文档获得帮助
原地址:http://www.howzhi.com/course/286/lesson/2121 查找文档快速 苹果提供了丰富的文档,以帮助您成功构建和部署你的应用程序,包括示例代码,常见问题解答,技 ...
- HDU3466背包01
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...
- centos安装redis及php-redis扩展
centos安装redis及php-redis扩展 Linux, WEB 七162012 今天公司同事要求在测试机上安装redis,并且要求让php安装上redis的扩展,redis是一个key-v ...
- 在CI中集成phpmailer,方便使用SMTP发送邮件
直接使用phpmailer的话,有时候不是很方便,特别你的很多功能都是基于CI完成的时候,要相互依赖就不方便了,所以在想,那是否可以将phpmailer集成到CI中呢,像使用email类这样使用他,功 ...
- 《ASP.NET MVC4 WEB编程》学习笔记------Web API 续
目录 ASP.NET WEB API的出现缘由 ASP.NET WEB API的强大功能 ASP.NET WEB API的出现缘由 随着UI AJAX 请求适量的增加,ASP.NET MVC基于Jso ...
- 【leetcode】Combination Sum II
Combination Sum II Given a collection of candidate numbers (C) and a target number (T), find all uni ...
- Linux set env export declare unset
http://www.it165.net/os/html/201405/8390.html env /etc/profile 环境变量 系统提供 可改 set /etc/bashrc及用户自定义的变量 ...
- 61. 从1到n,共有n个数字,每个数字只出现一次。从中随机拿走一个数字x,请给出最快的方法,找到这个数字。如果随机拿走k(k>=2)个数字呢?[find k missing numbers from 1 to n]
[本文链接] http://www.cnblogs.com/hellogiser/p/find-k-missing-numbers-from-1-to-n.html [题目] 从1到n,共有n个数字 ...
- iOS 和Android中的正则表达式简单使用
ios 中需要使用NSRegularExpression类,NSTextCheckingResult类. 下面给出最基本的实现代码 NSRegularExpression *regex = [NSRe ...