您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-x简单游戏<植物大战僵尸>代码实现|第九部分:游戏场景GameScene.h<后续会提供源码下载链接>

2014-03-17 17:48 1001 查看
这个植物大战僵尸的小游戏Demo 虽然下,但是基本包括了:

  1.植物的选取、僵尸的攻击、发射子弹;

  2.太阳的生成、碰撞检测等功能;

 

 

 第一部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第一部分:开始场景

 第二部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第二部分:菜单场景

 第三部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第三部分:通关场景

 第四部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第四部分:通关失败场景

 第五部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第五部分:公用类

 第六部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第六部分:植物类

 第七部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第七部分:僵尸类

 第八部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第八部分:子弹类

 第九部分<A>:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第九部分:游戏场景GameScene.h
 第九部分<B>:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第九部分:游戏场景GameScene.cpp

#ifndef __MyTest__GameScene__

#define __MyTest__GameScene__

#include <iostream>

#include "cocos2d.h"

#include "Plants.h"

#include "cocos-ext.h"

#include "Zombies.h"

USING_NS_CC;
USING_NS_CC_EXT;

#define CHERRY 101

#define CHOMPER 102

#define JALAPENO 103

#define LILYPAD 104

#define PEASHOOTER 105

#define REPEATER 106

#define SQUASH 107

#define SUNFLOWER 108

#define TALLNUA 109

#define THREEPEATER 110

#define WALLNUA 111

class GameScene :public cocos2d::CCLayer
{

public:
   virtual
bool init();
   static cocos2d::CCScene* scene();
    CREATE_FUNC(GameScene);

    
   void moveScenePosition();
   void sunAction();
   void plantsMenu(CCNode* tag);
    CCMenuItemToggle* createMenuItem(constchar* plantName,constchar*
plantName2, int tag);
    CCMenuItemToggle* createMenuItem1(constchar* plantName,constchar*
plantName2, int tag);
   void resetBarMenu();
   void beSure();//菜单确认按钮
   void addMenu();//添加菜单
   void plantingPlant(CCNode* plant);//种植植物
    CCPoint getPositionMessage(CCPoint point);
   void initFlag();//初始化flag;
   int getFlag(CCPoint point);
   void setFlagValue(CCPoint point);//设置植物种植位置的标志
   void setFlagValue1(CCPoint point);
   void createSunshine();//创建阳光
   void createShoote();//创建子弹
   void removeSprite(CCSprite* sprite);
   void addZoombie();
   void checkHitWithBulletAndPlant();//检测子弹与僵尸的碰撞
   void setSunNumberLB();
   void createSunshineWithoutSunflower();//非向日葵产生的阳光
   void LevelBar();//初始化关卡进度条
   void setLevelBar();//设置关卡进度条
   void appearZombie();//根据timer控制僵尸出现的数量
   void appearZombie1();
   void appearZombie2();
   void pass();//过关
   void judgeCoolTime();//判断植物的冷却时间
   void reduceCoolTime();//每秒钟减少一次冷却时间
   void checkHitOtherPlantsAndZombie();//检测其他植物(辣椒,食人花等),与僵尸的碰撞
   void zoombieBoomDie(Zoombie* zoombie);//僵尸被炸死的动作
   void collapseZombie(Zoombie* zoombie);//僵尸被南瓜压死的动作
   void chomperAction1(Plants* plant);//食人花正常动作
   void chomperAction2(Plants* plant);//食人花吃僵尸的动作
   void chomperAction3(Plants* plant);//食人花咀嚼僵尸的动作
   void changeFailedScene();//切换到失败场景
   void checkFial();//检测僵尸是否进入房子
   void changeSuccessScene();
   void addCar();//添加小车
   void checkHitCarWithZoombie();
   void removeCar(CCNode* node,CCArray* array);
   void initBeforeZombie();//初始化刚开始出现的僵尸,游戏开始后移除
   void removeBeforeZombie();

    

    
   virtual
void onExit();
   virtual
bool ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent);
   virtual
void ccTouchMoved(CCTouch *pTouch,CCEvent *pEvent);
   virtual
void ccTouchEnded(CCTouch *pTouch,CCEvent *pEvent);
   virtual
void ccTouchCancelled(CCTouch *pTouch,CCEvent *pEvent);

    

public:
   CCSprite* pSprite;//背景精灵
   CCSprite* menuSprite;//菜单
   CCSprite* barMenuSprite;//菜单条
   CCArray* plantsMenuArray;//菜单中存放的数组
   CCArray* plantsArray;//游戏中存放的植物
   CCArray* plantsSpriteArray;//存放选择植物是生成的临时植物精灵
   CCArray* zoombieArray;//存放游戏中的僵尸
   CCArray* carArray;
   CCLabelTTF* sunNumberLB;
   CCArray* beforeZombie;
   bool plantsIsPlanted;//植物是否被种植的标志

    int flag[9][5];//不能重复种植的标志,0可以种植,1不可以种植
   char sunNum[10];

    int timer;//时间标志,控制僵尸出现的数量
   CCControlSlider* theLevelBar;//关卡进度条
   int theLevelBarProgressBar;//设置进度条的值
   int thePassNumberOfZombie;//过关所需要打死僵尸的数量
   int productZombie;//每关要产生僵尸的数量

    

    //CCMenuIteToggle中每个菜单项的冷却时间
   int cherryCoolTime;
   int chomperCoolTime;
   int jalapenoCoolTime;
   int lilypadCoolTime;
   int peashooterCoolTime;
   int repeaterCoolTime;
   int squashCoolTime;
   int sunflowerCoolTime;
   int tallnutCoolTime;
   int threepeaterCoolTime;
   int wallnutCooltime;

    
};

#endif /* defined(__PlantsVSZombies__GameScene__) */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐