我在上一篇博客中介绍了如何使用Cocos Studio创建工程,这篇博客分析上一篇博客的工程,打开在上一篇博客中创建的工程后可以看到工程中的文件如下
文件分析:
Classes:存放跨平台的C++代码
cocosstudio:放置项目中使用的所有资源
proj.android:用于开发Android上的游戏
proj.ios_mac:用于开发苹果手机上的游戏
proj.win32:用于开发Windows上的游戏
Resource:用于保存资源
cocos-project.json:项目配置文件
myProject.ccs:Cocos Studio项目的启动文件,双击该文件可以开启您的Cocos studio项目
myProject.cfg:项目配置文件,用于管理您的项目配置信息
myProject.udf:项目配置文件
使用Visual Studio 2012打开项目后的项目工程文件结构
代码分析:
main.cpp中的代码(本人已经注释)
AppDelegate.h中的代码(本人已经注释)
copy
#ifndef_APP_DELEGATE_H_
#define_APP_DELEGATE_H_
#include"cocos2d.h"
//AppDelegate继承自Application
classAppDelegate:privatecocos2d::Application
public:
//构造函数
AppDelegate();
//析构函数
virtual~AppDelegate();
//初始化OpenGL属性
virtualvoidinitGLContextAttrs();
//当程序启动后调用的函数
virtualboolapplicationDidFinishLaunching();
//当程序进入后台后调用的函数
voidapplicationDidEnterBackground();
//当程序恢复到前台后调用的函数
voidapplicationWillEnterForeground();
};
#endif
AppDelegate.cpp中的代码(本人已经注释)
copy
#include"AppDelegate.h"
#include"HelloWorldScene.h"
//Cocos2d-X的命名空间
USING_NS_CC;
//构造函数
AppDelegate::AppDelegate(){
}
//析构函数
AppDelegate::~AppDelegate()
}
//设置OpenGL属性
voidAppDelegate::initGLContextAttrs()
//设置OpenGL上下文属性,现在只能设置六个属性:
//红,绿,蓝,阿尔法,深度,模板
GLContextAttrsglContextAttrs={8,8,24,8};
GLView::setGLContextAttrs(glContextAttrs);
//程序启动完成后会进入的函数
boolAppDelegate::applicationDidFinishLaunching()
//初始化导演
autodirector=Director::getInstance();
//获得OpenGL视图
autoglview=director->getOpenGLView();
if(!glview)
//设置程序名和窗口的尺寸
glview=GLViewImpl::createWithRect("myProject",Rect(0,960,640));
//设置OpenGL视图
director->setOpenGLView(glview);
//设置分辨率
director->getOpenGLView()->setDesignResolutionSize(960,640,ResolutionPolicy::SHOW_ALL);
//设置是否显示调试信息
director->setDisplayStats(true);
//设置帧率
director->setAnimationInterval(1.0/60);
//设置文件的搜索路径
FileUtils::getInstance()->addSearchPath("res");
//调用场景
autoscene=HelloWorld::createScene();
//执行场景
director->runWithScene(scene);
returntrue;
//当别人打电话来的时候调用的函数,程序进入后台
voidAppDelegate::applicationDidEnterBackground()
//停止播放动画
Director::getInstance()->stopAnimation();
//如果程序中有背景音乐,停止播放背景音乐
//SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
//当通话结束后,程序进入前台
voidAppDelegate::applicationWillEnterForeground()
//播放动画
Director::getInstance()->startAnimation();
//当程序中有背景音乐的时候继续播放背景音乐
//SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
}
HelloWorldScene.h中的代码(本人已经注释)
copy
#ifndef__HELLOWORLD_SCENE_H__
#define__HELLOWORLD_SCENE_H__
//HelloWorld继承自Layer
classHelloWorld:publiccocos2d::Layer
//创建场景
staticcocos2d::Scene*createScene();
//初始化场景
boolinit();
//实施静态的create方法
CREATE_FUNC(HelloWorld);
};
#endif//__HELLOWORLD_SCENE_H__
HelloWorldScene.cpp中的代码(本人已经注释)
copy
#include"HelloWorldScene.h"
#include"cocostudio/CocoStudio.h"
#include"ui/CocosGUI.h"
//使用动画需要引入的命名空间
usingnamespacecocostudio::timeline;
//场景创建函数
Scene*HelloWorld::createScene()
//创建场景
autoscene=Scene::create();
//创建层
autolayer=HelloWorld::create();
//将层添加到场景中
scene->addChild(layer);
//返回场景
returnscene;
//场景初始化函数
boolHelloWorld::init()
//初始化父类的层
if(!Layer::init())
{
false;
//加载Cocostudio的资费
autorootNode=CSLoader::createNode("MainScene.csb");
addChild(rootNode);
true;
}