微信经典飞机大战之一:GameScene和GameLayer的关系

来源:互联网 发布:怪物猎人捏脸数据库 编辑:程序博客网 时间:2024/05/22 08:17

天下武学,都是从无到有,从弱到强,从模仿到创新,郭靖和张无忌等等,莫不皆如此。搞一个微信经典飞机大战来玩玩,如有雷同,算我抄你。谢谢偶尔e网事。

在这个项目中,我们把CCScene和CCLayer严格分开来使用,不像系统的HelloWorld那么纠结在一起。

(1)创建GameScene类继承于CCScene

(2)创建GameLayer类继承于CCLayer

(3)为GameScene添加成员变量GameLayer*  _gameLayer

(4)在GameScene的init方法里把_gameLayer 添加到场景中

GameScene的头文件如下:

//GameScene.h#pragma once#include "cocos2d.h"#include "GameLayer.h"USING_NS_CC;class GameScene:public CCScene{public:GameScene(void);~GameScene(void);CREATE_FUNC(GameScene);virtual bool init();GameLayer* _gameLayer; //把GameLayer暴露给GameScene };

GameScene的cpp文件如下:

#include "GameScene.h"GameScene::GameScene(void){_gameLayer=NULL;}GameScene::~GameScene(void){}bool GameScene::init(){bool bRet=false;do{CC_BREAK_IF(!CCScene::init());_gameLayer=GameLayer::create(); //获取GameLayer实例CC_BREAK_IF(!_gameLayer);this->addChild(_gameLayer); //增加 _gameLayer到场景中bRet=true;} while (0);return bRet;}
我们将GameLayer作为整个游戏的容器,在上面放置我们的主角飞机层、敌机层、子弹层、UFO(双子弹和大炸弹)层、控制层等等,是整个游戏的基层,而且还包括一些额外的属性,例如游戏的难度系数等等,后续会详细介绍。

另外,在AppDelegate.cpp中,我们需要创建GameScene,并将其运行。

CCScene *pScene = GameScene::create();pDirector->runWithScene(pScene);
这样子就可以正常运行GameScene了。




0 0
原创粉丝点击