cocos2dx 3.0 飞机大战】的更多相关文章

因为课程须要.然后又水平有限.所以写了个飞机大战.加上不会画画.所以图片资源也是从微信apk解压出来的,设计思路參考的偶尔e网事. 闲话不说.先讲一下设计.大体上一共分为3个场景.场景以下是Layer 開始场景:WelcomeScene -->WelcomeLayer  类似欢迎界面 游戏主场景:GameScene  --> GameLayer  游戏元素加入 和 碰撞检測 结束场景:GameOverScene -->GameOverLayer 然后是游戏的元素,在GameLayer加入…
游戏开始层 #ifndef __LayerGameStart_H__ #define __LayerGameStart_H__ #include "cocos2d.h" USING_NS_CC; class LayerGameStart :public CCLayer { public: static CCScene * scene(); CREATE_FUNC(LayerGameStart); bool init(); void addStartGamePicture(); void…
主场景要包括其它类的头文件 #include "cocos2d.h" #include "MyPlane.h" #include "Bullet.h" #include "EnemyManager.h" #include "Controller.h" #include "BackgroundMove.h" #include "FlowWord.h" 在这个游戏中.我将…
在上一篇中.我们实现了游戏的開始界面,接下来要实现游戏的主界面.主界面包括地图.我方飞机.敌机等 先来实现我方飞机 我方飞机具有哪些属性呢? 飞机要具有生命值.要有动画效果(尾部喷气),飞机不可以飞出边界.所以要进行边界检測,当飞机生命值为0时.飞机会爆炸.然后被移除. .h文件 //飞机动画 Animate* planeFly(); //边界检測 void borderCheck(float dt); //飞机爆炸 void blowUp(); //移除飞机 void removePlane(…
敌方飞机应该不定时的出现,有自己的生命周期.运动轨迹.这个类用来管理敌机的产生.移动.爆炸.销毁等. 敌机管理类主要函数例如以下 //绑定控制器(更新分数) void bindController(Controller* controller); //依据分数决定加入敌机速度 void addSpeed(float dt); // 加入敌机1 void addEnemy1(float dt); // 加入敌机2 void addEnemy2(float dt); // 加入敌机3 void ad…
控制器中的功能并不多,主要是以下这些 //对玩家分数的操作 CC_SYNTHESIZE_READONLY(SaveData *, m_saveData, SaveData); void update(float tm); //游戏暂停与恢复 void menuPauseCallback(cocos2d::Ref* pSender); //声音控制 void menuMusicCallback(cocos2d::Ref* pSender); 以下是这些功能的实现 bool Controller::…
如今来实现敌机类 敌机和我方飞机相似,具有生命值.能够发射子弹.而且有自己的运动轨迹.事实上能够为它们设计一个共同的基类,这样能够更方便扩展. 不同的敌机,应设置不同的标识.属性 // 敌机生命值 const int ENEMY1_MAXLIFE = 1; const int ENEMY2_MAXLIFE = 2; const int ENEMY3_MAXLIFE = 5; const int ENEMY4_MAXLIFE = 10; // 敌机分数 const int ENEMY1_SCORE…
採用双层背景.这样效果更好 .h class BackgroundMove : public Layer { public: BackgroundMove(); ~BackgroundMove(); virtual bool init(); virtual void onEnterTransitionDidFinish(); //等进入场景之后在进行背景的移动 CREATE_FUNC(BackgroundMove); public: void move(float dt); private: S…
游戏结束的时候,要显示分数.还要可以选择是返回主场景还是退出游戏 // 退出游戏 void menuCloseCallback(cocos2d::Ref* pSender); // 返回主界面 void menuMainCallback(cocos2d::Ref* pSender); 实现该功能的代码例如以下 bool GameOver::init() { ////////////////////////////// // 1. super init first if (!Layer::init…
接<基于Cocos2d-x-1.0.1的飞机大战游戏开发实例(上)> 三.代码分析 1.界面初始化 bool PlaneWarGame::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); _size = CCDirector::sharedDirector()->getWinSize(); // 设置触摸可用 this->setIsTouchEnabled(true); // 从窗口中取消息 CCDir…