Cocos Studio工程分析

Cocos Studio工程分析,第1张

概述我在上一篇博客中介绍了如何使用Cocos Studio创建工程,这篇博客分析上一篇博客的工程,打开在上一篇博客中创建的工程后可以看到工程中的文件如下 文件分析: Classes:存放跨平台的C++代码 cocosstudio:放置项目中使用的所有资源 proj.android:用于开发Android上的游戏 proj.ios_mac:用于开发苹果手机上的游戏 proj.win32:用于开发Wind

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

#include "main.h"#include "AppDelegate.h"#include "cocos2d.h"//Cocos2d-X的命名空间USING_NS_CC;//链接静态链接库#if _MSC_VER > 1700#pragma comment(lib,"libcocos2d_2013.lib")#pragma comment(lib,"libBox2d_2013.lib")#pragma comment(lib,"libSpine_2013.lib")#else#pragma comment(lib,"libcocos2d_2012.lib")#pragma comment(lib,"libBox2d_2012.lib")#pragma comment(lib,"libSpine_2012.lib")#endif//Cocos2d-X的main函数int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR    lpCmdline,int       nCmdshow){    UNREFERENCED_ParaMETER(hPrevInstance);    UNREFERENCED_ParaMETER(lpCmdline);    //创建程序实例    AppDelegate app;	//执行app的run方法    return Application::getInstance()->run();}

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

#ifndef  _APP_DELEGATE_H_#define  _APP_DELEGATE_H_#include "cocos2d.h"//AppDelegate继承自Applicationclass  AppDelegate : private cocos2d::Application{public:	//构造函数    AppDelegate();	//析构函数    virtual ~AppDelegate();	//初始化OpenGL属性    virtual voID initGLContextAttrs();	//当程序启动后调用的函数    virtual bool applicationDIDFinishLaunching();    //当程序进入后台后调用的函数    virtual voID applicationDIDEnterBackground();   //当程序恢复到前台后调用的函数    virtual voID applicationWillEnterForeground();};#endif 


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

#include "AppDelegate.h"#include "HelloWorldScene.h"//Cocos2d-X的命名空间USING_NS_CC;//构造函数AppDelegate::AppDelegate() {}//析构函数AppDelegate::~AppDelegate() {}//设置OpenGL属性voID AppDelegate::initGLContextAttrs(){	//设置OpenGL上下文属性,现在只能设置六个属性:	//红,绿,蓝,阿尔法,深度,模板    GLContextAttrs glContextAttrs = {8,8,24,8};    GLVIEw::setGLContextAttrs(glContextAttrs);}//程序启动完成后会进入的函数  bool AppDelegate::applicationDIDFinishLaunching() {	//初始化导演    auto director = Director::getInstance();	//获得OpenGL视图    auto glvIEw = 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");    //调用场景    auto scene = HelloWorld::createScene();    //执行场景    director->runWithScene(scene);    return true;}//当别人打电话来的时候调用的函数,程序进入后台voID AppDelegate::applicationDIDEnterBackground() {	//停止播放动画    Director::getInstance()->stopAnimation();    //如果程序中有背景音乐,停止播放背景音乐     //SimpleAudioEngine::getInstance()->pauseBackgroundMusic();}//当通话结束后,程序进入前台voID AppDelegate::applicationWillEnterForeground() {	//播放动画    Director::getInstance()->startAnimation();    //当程序中有背景音乐的时候继续播放背景音乐    //SimpleAudioEngine::getInstance()->resumeBackgroundMusic();}

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

#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"//HelloWorld继承自Layerclass HelloWorld : public cocos2d::Layer{public:	//创建场景    static cocos2d::Scene* createScene();    //初始化场景    virtual bool init();    // 实施静态的create方法    CREATE_FUNC(HelloWorld);};#endif // __HELLOWORLD_SCENE_H__


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

#include "HelloWorldScene.h"#include "cocostudio/CocoStudio.h"#include "ui/CocosGUI.h"USING_NS_CC;//使用动画需要引入的命名空间using namespace cocostudio::timeline;//场景创建函数Scene* HelloWorld::createScene(){    //创建场景    auto scene = Scene::create();        //创建层    auto layer = HelloWorld::create();    //将层添加到场景中    scene->addChild(layer);    //返回场景    return scene;}//场景初始化函数bool HelloWorld::init(){	//初始化父类的层    if(!Layer::init())    {        return false;    }    	//加载Coco studio的资费    auto rootNode = csloader::createNode("MainScene.csb");    addChild(rootNode);    return true;}
总结

以上是内存溢出为你收集整理的Cocos Studio工程分析全部内容,希望文章能够帮你解决Cocos Studio工程分析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1051408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存