上一个记录我们说到开发环境的配置以及怎样去建立自己的项目。现在我们就通过之前说所的方法来建立一个项目。这里我就不再截图了。
建立了自己的项目之后,我们就可以开始动工编写自己的代码了。这里我不对已有的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
#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; }
#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
#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) {}
原文地址:http://blog.csdn.net/u010170012/article/details/34170179