首页 > 代码库 > Cocos2dx学习报告2

Cocos2dx学习报告2

记录二:创建项目,其名曰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)
{}