Cocos Studio工程分析

我在上一篇博客中介绍了如何使用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中的代码(本人已经注释)

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #include "main.h"  
  2. #include "AppDelegate.h"  
  3. #include "cocos2d.h"  
  4.   
  5. //Cocos2d-X的命名空间  
  6. USING_NS_CC;  
  7.   
  8. //链接静态链接库  
  9. #if _MSC_VER > 1700  
  10. #pragma comment(lib,"libcocos2d_2013.lib")  
  11. #pragma comment(lib,"libbox2d_2013.lib")  
  12. #pragma comment(lib,"libSpine_2013.lib")  
  13. #else  
  14. #pragma comment(lib,"libcocos2d_2012.lib")  
  15. #pragma comment(lib,"libbox2d_2012.lib")  
  16. #pragma comment(lib,"libSpine_2012.lib")  
  17. #endif  
  18.   
  19. //Cocos2d-X的main函数  
  20. int APIENTRY _tWinMain(HINSTANCE hInstance,  
  21.                        HINSTANCE hPrevInstance,  
  22.                        LPTSTR    lpCmdLine,  
  23.                        int       nCmdShow)  
  24. {  
  25.     UNREFERENCED_PARAMETER(hPrevInstance);  
  26.     UNREFERENCED_PARAMETER(lpCmdLine);  
  27.   
  28.     //创建程序实例  
  29.     AppDelegate app;  
  30.   
  31.     //执行app的run方法  
  32.     return Application::getInstance()->run();  
  33. }  

 

AppDelegate.h中的代码(本人已经注释)

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #ifndef  _APP_DELEGATE_H_  
  2. #define  _APP_DELEGATE_H_  
  3.   
  4. #include "cocos2d.h"  
  5.   
  6. //AppDelegate继承自Application  
  7. class  AppDelegate : private cocos2d::Application  
  8. {  
  9. public:  
  10.     //构造函数  
  11.     AppDelegate();  
  12.   
  13.     //析构函数  
  14.     virtual ~AppDelegate();  
  15.   
  16.     //初始化OpenGL属性  
  17.     virtual void initGLContextAttrs();  
  18.   
  19.     //当程序启动后调用的函数  
  20.     virtual bool applicationDidFinishLaunching();  
  21.   
  22.     //当程序进入后台后调用的函数  
  23.     virtual void applicationDidEnterBackground();  
  24.   
  25.    //当程序恢复到前台后调用的函数  
  26.     virtual void applicationWillEnterForeground();  
  27. };  
  28.   
  29. #endif   


AppDelegate.cpp中的代码(本人已经注释)

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #include "AppDelegate.h"  
  2. #include "HelloWorldScene.h"  
  3.   
  4. //Cocos2d-X的命名空间  
  5. USING_NS_CC;  
  6.   
  7. //构造函数  
  8. AppDelegate::AppDelegate() {  
  9.   
  10. }  
  11.   
  12. //析构函数  
  13. AppDelegate::~AppDelegate()   
  14. {  
  15. }  
  16.   
  17.   
  18. //设置OpenGL属性  
  19. void AppDelegate::initGLContextAttrs()  
  20. {  
  21.     //设置OpenGL上下文属性,现在只能设置六个属性:  
  22.     //红,绿,蓝,阿尔法,深度,模板  
  23.     GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8};  
  24.     GLView::setGLContextAttrs(glContextAttrs);  
  25. }  
  26.   
  27.   
  28. //程序启动完成后会进入的函数    
  29. bool AppDelegate::applicationDidFinishLaunching()   
  30. {  
  31.     //初始化导演  
  32.     auto director = Director::getInstance();  
  33.   
  34.     //获得OpenGL视图  
  35.     auto glview = director->getOpenGLView();  
  36.   
  37.     if(!glview)   
  38.     {  
  39.         //设置程序名和窗口的尺寸  
  40.         glview = GLViewImpl::createWithRect("myProject", Rect(0, 0, 960, 640));  
  41.       
  42.         //设置OpenGL视图  
  43.         director->setOpenGLView(glview);  
  44.     }  
  45.   
  46.     //设置分辨率  
  47.     director->getOpenGLView()->setDesignResolutionSize(960, 640, ResolutionPolicy::SHOW_ALL);  
  48.   
  49.     //设置是否显示调试信息  
  50.     director->setDisplayStats(true);  
  51.   
  52.     //设置帧率  
  53.     director->setAnimationInterval(1.0 / 60);  
  54.   
  55.     //设置文件的搜索路径  
  56.     FileUtils::getInstance()->addSearchPath("res");  
  57.   
  58.     //调用场景  
  59.     auto scene = HelloWorld::createScene();  
  60.   
  61.     //执行场景  
  62.     director->runWithScene(scene);  
  63.   
  64.     return true;  
  65. }  
  66.   
  67.   
  68. //当别人打电话来的时候调用的函数,程序进入后台  
  69. void AppDelegate::applicationDidEnterBackground()   
  70. {  
  71.     //停止播放动画  
  72.     Director::getInstance()->stopAnimation();  
  73.   
  74.     //如果程序中有背景音乐,停止播放背景音乐   
  75.     //SimpleAudioEngine::getInstance()->pauseBackgroundMusic();  
  76. }  
  77.   
  78. //当通话结束后,程序进入前台  
  79. void AppDelegate::applicationWillEnterForeground()   
  80. {  
  81.     //播放动画  
  82.     Director::getInstance()->startAnimation();  
  83.   
  84.     //当程序中有背景音乐的时候继续播放背景音乐  
  85.     //SimpleAudioEngine::getInstance()->resumeBackgroundMusic();  
  86. }  

 

HelloWorldScene.h中的代码(本人已经注释)

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #ifndef __HELLOWORLD_SCENE_H__  
  2. #define __HELLOWORLD_SCENE_H__  
  3.   
  4. #include "cocos2d.h"  
  5.   
  6. //HelloWorld继承自Layer  
  7. class HelloWorld : public cocos2d::Layer  
  8. {  
  9. public:  
  10.     //创建场景  
  11.     static cocos2d::Scene* createScene();  
  12.   
  13.     //初始化场景  
  14.     virtual bool init();  
  15.   
  16.     // 实施静态的create方法  
  17.     CREATE_FUNC(HelloWorld);  
  18. };  
  19.   
  20. #endif // __HELLOWORLD_SCENE_H__  


HelloWorldScene.cpp中的代码(本人已经注释)

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #include "HelloWorldScene.h"  
  2. #include "cocostudio/CocoStudio.h"  
  3. #include "ui/CocosGUI.h"  
  4.   
  5. USING_NS_CC;  
  6.   
  7. //使用动画需要引入的命名空间  
  8. using namespace cocostudio::timeline;  
  9.   
  10. //场景创建函数  
  11. Scene* HelloWorld::createScene()  
  12. {  
  13.     //创建场景  
  14.     auto scene = Scene::create();  
  15.       
  16.     //创建层  
  17.     auto layer = HelloWorld::create();  
  18.   
  19.     //将层添加到场景中  
  20.     scene->addChild(layer);  
  21.   
  22.     //返回场景  
  23.     return scene;  
  24. }  
  25.   
  26. //场景初始化函数  
  27. bool HelloWorld::init()  
  28. {  
  29.     //初始化父类的层  
  30.     if(!Layer::init())  
  31.     {  
  32.         return false;  
  33.     }  
  34.       
  35.     //加载Coco studio的资费  
  36.     auto rootNode = CSLoader::createNode("MainScene.csb");  
  37.     addChild(rootNode);  
  38.   
  39.     return true;  
  40. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值