加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos Studio工程分析

发布时间:2020-12-14 17:12:08 所属栏目:百科 来源:网络整理
导读:我在上一篇博客中介绍了如何使用Cocos Studio创建工程,这篇博客分析上一篇博客的工程,打开在上一篇博客中创建的工程后可以看到工程中的文件如下 文件分析: Classes: 存放跨平台的C++代码 cocosstudio: 放置项目中使用的所有资源 proj.android: 用于开

我在上一篇博客中介绍了如何使用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
  1. #include"main.h"
  2. #include"AppDelegate.h"
  3. #include"cocos2d.h"
  4. //Cocos2d-X的命名空间
  5. USING_NS_CC;
  6. //链接静态链接库
  7. #if_MSC_VER>1700
  8. #pragmacomment(lib,"libcocos2d_2013.lib")
  9. #pragmacomment(lib,"libbox2d_2013.lib")
  10. #else
  11. #endif
  12. //Cocos2d-X的main函数
  13. intAPIENTRY_tWinMain(HINSTANCEhInstance,
  14. HINSTANCEhPrevInstance,
  15. LPTSTRlpCmdLine,87); font-weight:bold; background-color:inherit">intnCmdShow)
  16. {
  17. UNREFERENCED_PARAMETER(hPrevInstance);
  18. UNREFERENCED_PARAMETER(lpCmdLine);
  19. //创建程序实例
  20. AppDelegateapp;
  21. //执行app的run方法
  22. returnApplication::getInstance()->run();
  23. }

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;
  • }
  • (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读