cocos2dx基礎篇(1) Cocos2D-X項目建立

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