已經入行工做半年多時間了,之前都是把這些東西記錄在有道雲上面的,如今抽出些時間把之前的筆記騰過來。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; }