前端之家收集整理的这篇文章主要介绍了
零基础学cocos2dx 3.0(顺带学C++)第一篇 切换场景,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
不会去重复一些概念性的东西,具体的内容,我在代码中已经备注出来。先看目录,这个创建完项目目录的Classes文件夹下有4个文件,我把helloworld那两个文件直接改了名字,这里我叫MainScene 。切记,在改为名字之后需要到appDelegate.pp里面把对应的helloworld改过来。
废话不多说,直接上代码
1,appDelegate.h
- #ifndef_APP_DELEGATE_H_
- #define_APP_DELEGATE_H_
-
- #include"cocos2d.h"
-
- *cocos2d应用入口类
- *官方解释这里使用私有继承的原因是隐藏了一些导演类的接口
- *C++不是很懂,后期再好好研究下
- */
- classAppDelegate:privatecocos2d::Application
- {
- public:
- //构造函数,构造一个AppDelegate
- AppDelegate();
- //析构函数,用于回收垃圾,释放空间,这里是虚函数,建议包括本人在内的newC++er好好补习下C++基础
- //这里找到资料为:C++通过虚函数实现多态."无论发送消息的对象属于什么类,它们均发送具有同一形式的消息,对消息的处理方式可能随接手消息的对象而变"的处理方式被称为多态性。
- virtual~AppDelegate();
- *主程序的入口方法,在这里对导演和场景的初始化
- @returntrue初始化success,应用continue.
- @returnfalse初始化Failed,应用terminate.
- virtualboolapplicationDidFinishLaunching();
-
- /**
- *程序转入背景运行函数
- */
- virtualvoidapplicationDidEnterBackground();
- *程序恢复运行函数
- virtualvoidapplicationWillEnterForeground();
- };
- #endif//_APP_DELEGATE_H_
2,appDelegate.cpp
copy
#include"AppDelegate.h"
#include"MainScene.h"//这里原本是HelloWorldScene,我换了名字
//使用cocos2dx的命名空间,如果不使用的话,貌似有些cocos的字段显示无法识别
USING_NS_CC;
//构建入口类
AppDelegate::AppDelegate(){
}
//析构函数,用于垃圾回收
AppDelegate::~AppDelegate()
{
//启动程序入口
boolAppDelegate::applicationDidFinishLaunching(){
//初始化导演类
autodirector=Director::getInstance();
//通过导演类获取一个OpenGL坐标系
autoglview=director->getOpenGLView();
//如果没有获取到,创建一个坐标系界面,命名为Cocos2dxSceneShow
if(!glview){
glview=GLView::create("Cocos2dxSceneShow");
director->setOpenGLView(glview);
}
//打开显示帧率
director->setDisplayStats(true);
//设置默认帧率为1.0/60,即每秒60帧
director->setAnimationInterval(1.0/60);
//创建一个允许被释放的场景MainScene
autoscene=MainScene::scene();
//入口,运行这个MainScene场景
director->runWithScene(scene);
returntrue;
//暂停应用的时候调用。比如来了电话
voidAppDelegate::applicationDidEnterBackground(){
Director::getInstance()->stopAnimation();
//如果用了音乐等SimpleAudioEngine,这里需要加上
//SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
//重新唤醒游戏调用
voidAppDelegate::applicationWillEnterForeground(){
Director::getInstance()->startAnimation();
//如果用了音乐等这里需加上
//SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
}