標籤:學習報告 cocos2d-x
記錄二:建立項目,其名曰DFJ(仿照打飛機)
上一個記錄我們說到開發環境的配置以及怎樣去建立自己的項目。現在我們就通過之前說所的方法來建立一個項目。這裡我就不再了。
建立了自己的項目之後,我們就可以開始動工編寫自己的代碼了。這裡我不對已有的HelloWorldScene的檔案做修改。我們自己建立自己的情境來開始我們自己的遊戲之旅。
首先在這裡說明一下,由於後面多是代碼編寫的工作,所以後面的記錄多數會用代碼的形式展示給大家,需要記錄的地方我會通過注釋來向大家說明。
----------本次記錄的任務—完成開始情境,開始介面已經開始介面到遊戲介面的跳轉。----------
在代碼開始之前,我來簡單說一下這個執行個體遊戲的大體架構結構,如。
StartScene.h
/************************************************************************//* 開始情境 *//************************************************************************/#ifndef _StartScene_h_#define _StartScene_h_/************************************************************************//* 引入需要用到的標頭檔 *//************************************************************************/#include "cocos2d.h"#include "cocos-ext.h"#include "StartLayer.h"//開始介面/************************************************************************//* 添加要用到命名空間 *//************************************************************************/using namespace cocos2d;using namespace cocos2d::extension;/************************************************************************//* 開始情境,遊戲的第一個情境,繼承CCScene *//************************************************************************/class StartScene:public CCScene{public:/************************************************************************//* StartScene的構造 *//************************************************************************/StartScene(void);/************************************************************************//* StartScene的析構 *//************************************************************************/virtual ~StartScene(void);/************************************************************************//* StartScene的初始化,返回false則表示初始化失敗,true則表示成功 *//************************************************************************/virtual bool init();/************************************************************************//* 使我們能夠通過StartScene::create()方法來建立scene *//************************************************************************/CREATE_FUNC(StartScene);protected:private:};#endif
StartScene.cpp
#include "StartScene.h"/************************************************************************//* 建構函式,在這裡我們可以將一些需要賦初值的全域變數進行賦初值的操作 *//************************************************************************/StartScene::StartScene(void){}/************************************************************************//* 解構函式,在這個情境消亡的時候會進入這個函數 *//************************************************************************/StartScene::~StartScene(void){}/************************************************************************//* 初始化函數,在這個函數裡我們可以進行一些介面上控制項的初始擺放 *//************************************************************************/bool StartScene::init(){bool bRet = false;/************************************************************************//* 因為StartScene繼承自CCScene,這裡進行一個CCScene初始化的判斷來判斷StartScene能不能成功建立 *//************************************************************************/if (!CCScene::init()){/*如果CCScene初始化失敗,則表示StartScene將不會成功建立,則返回false*/return bRet;}/*這裡我們來打個Log來看我們是不是盡到了StartScene*/CCLog("Now,I'm in StartScene!");/*CCScene初始化成功後,我們可以繼續後面的操作來進行StartScene的設計*/bRet = true;/*根據我之前說的大體架構結構,scene下添加layer,這裡我們將添加StartLayer,他是開始情境中的主角,開始情境介面上顯示的控制項都來自他*/CCLayer *pstartLayer = StartLayer::create();addChild(pstartLayer);return bRet;}
StartLayer.h
#ifndef _StartLayer_h_#define _StartLayer_h_#include "cocos2d.h"#include "cocos-ext.h"using namespace cocos2d;using namespace cocos2d::extension;class StartLayer:public CCLayer{public:StartLayer(void);virtual ~StartLayer(void);virtual bool init();CREATE_FUNC(StartLayer);virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);protected:private:};#endif
StartLayer.cpp
#include "StartLayer.h"StartLayer::StartLayer(void){}StartLayer::~StartLayer(void){}bool StartLayer::init(){bool bRet = false;if (!CCLayer::init()){return bRet;}bRet = true;CCLog("Now,I'm in StartLayer!");setTouchEnabled(true);return bRet;}void StartLayer::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent){}void StartLayer::ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent){}void StartLayer::ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent){}