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

这个植物大战僵尸的小游戏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__) */

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GFanStudio-LeeSir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值