已经入行工做半年多时间了,之前都是把这些东西记录在有道云上面的,如今抽出些时间把之前的笔记腾过来。javascript
具体的环境配置就不用说了,由于如今已是2018年,只须要下载对应版本解压后就能使用,不用再像多年前那样配置环境java
须要的安装包:vs2013,cocos2d-x-2.2.3.zip,python-2.7.8
我本身用的是cocos2d-x-2.2.6,学习最初用的这个版本,后来才用的3.x版本python
项目建立方法(使用python建立)
-
cocos2.x版本
在tools\project-creator文件夹下有 create_project.py 进入这个文件夹
cd D:\cocos2d-x-2.2.6\tools\project-creator
而后 d:
建立工程目录:
python create_project.py -project projectname -package com.XXXX.XXXX -language cppapp
python create_project.py:运行脚本的工具以及建立工程的脚本函数
-project projectname:工程名工具
-package com.XXXX.XXXX :包名学习
-language cpp:开发语言,可选项有cpp,lua,javascript
产生的目录路径:D:\cocos2d-x-2.2.6\projectsui
-
cocos3.x版本
没有tools\project-creator文件夹this
cd G:\cocos2dx\cocos2d-x-3.16lua
建立工程目录:
cocos new HelloWorld -p com.LMX.HelloWorld -l cpp -d projects
cocos new -l lua -p com.org.Gao -d F:\cocosPorject
查看cocos2d版本
在工程目录libcocos2d下面有一个文件cocos2d.cpp
#include "cocos2d.h" NS_CC_BEGIN const char* cocos2dVersion() { return "cocos2d-x 2.2.6"; } NS_CC_END
工程的入口,从main.cpp开始
#include "main.h" #include "AppDelegate.h" #include "CCEGLView.h" USING_NS_CC; int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); // create the application instance AppDelegate app; // delegate表示代理 CCEGLView* eglView = CCEGLView::sharedOpenGLView(); // shared表示单例 eglView->setViewName("WangGuiLin"); eglView->setFrameSize(1024, 768); return CCApplication::sharedApplication()->run(); }
真正意义上的入口
bool AppDelegate::applicationDidFinishLaunching() { // initialize director CCDirector* pDirector = CCDirector::sharedDirector(); CCEGLView* pEGLView = CCEGLView::sharedOpenGLView(); pDirector->setOpenGLView(pEGLView); // turn on display FPS pDirector->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this pDirector->setAnimationInterval(1.0 / 60); // 建立场景 CCScene *pScene = HelloWorld::scene(); // 运行场景 pDirector->runWithScene(pScene); return true; }
上面运行了由HelloWorld建立的场景,接下来看看HelloWorld
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" class HelloWorld : public cocos2d::CCLayer { public: // 真正的初始化 virtual bool init(); // there's no 'id' in cpp, so we recommend returning the class instance pointer static cocos2d::CCScene* scene(); // 回调函数 void menuCloseCallback(CCObject* pSender); // 里面调用了初始化 CREATE_FUNC(HelloWorld); }; #endif // __HELLOWORLD_SCENE_H__
这里的scene()只建立scene和layer,并将layer加入scene,而后返回scene
CCScene* HelloWorld::scene() { // 建立场景 CCScene *scene = CCScene::create(); // 建立层 HelloWorld *layer = HelloWorld::create(); // 将层加入场景 scene->addChild(layer); // 返回场景 return scene; }