当前位置:   article > 正文

(三)C++自制植物大战僵尸游戏项目结构说明

(三)C++自制植物大战僵尸游戏项目结构说明

植物大战僵尸游戏开发教程专栏地址icon-default.png?t=N7T8http://t.csdnimg.cn/ErelL


一、项目结构

打开项目后,在解决方案管理器中有五个项目,分别是libbox2dlibcocos2dlibrecastlibSpinePlantsVsZombies五个项目,除PlantsVsZombies外,其他四个是所用到的一些库文件,不需要深入探究。

例如:libbox2d是一个物理引擎库,libcocos2dCocos2d-x游戏开发框架,libSpine是一个骨骼动画库等。

PlantsVsZombies是我们自己开发的游戏项目,该项目依赖于上述的某些库文件。所以启动游戏时需要将PlantsVsZombies项目设置为启动项。

鼠标左键点击三角图案,打开项目结构目录。如下图所示。

其对应的项目文件夹目标如下图所示 。

二、Class文件夹结构 

Class文件夹里面的代码就是开发该游戏所编写的所有代码。Class文件里面包含四个文件夹,分别是BasedPlantsScenesZombies,以及以PlantsVsZombies命名的C++头文件和源文件。


每个文件夹中所包含的代码文件所表示的内容如下表所示。

文件夹内容
Based存放游戏中使用到的一些基础代码文件
Plants存放所有植物类的代码文件
Scenes存放游戏中场景的代码文件
Zombies存放所有僵尸类的代码文件
PlantsVsZombies.h/.cpp游戏main函数文件,Windows版本启动游戏入口

三、Based文件夹

Based文件夹主要包含一些在游戏中常用到的一些类文件。比如对话框类音乐播放类全局变量类用户信息类关卡信息类等一些重要的文件。

四、Plants文件夹结构

Plants文件夹中存放所有植物相关代码文件。根据植物的不同特性,将其分为三类。分别是EmissionPlantsDefensePlantsBattlePlants。本文只介绍项目结构,植物的继承关系以及代码实现细节将在后续的教程中讲解。

1. EmissionPlants

EmissionPlants表示可以发射攻击的植物,例如豌豆射手卷心菜投手等植物,这类植物可以发射子弹,使用子弹进行攻击。所以在这个文件夹下还有一个Bullet文件夹,主要存放不同植物所发射的子弹。

2. DefensePlants

DefensePlants主要存放保护类植物,该类植物不直接产生攻击伤害,但是可以辅助其他植物,例如向日葵火炬树桩坚果墙等

3. BattlePlants 

BattlePlants主要存放攻击伤害较高的植物,此类植物一次攻击伤害高,攻击时间间隔较长或者只攻击一次。例如樱桃炸弹土豆雷火爆辣椒等植物。

4. 其他 

Plants.h/cpp文件是植物类的基类,所有植物都继承此类。这个类主要定义一些植物所共有的属性和方法。


Plants-files.h文件主要是用于引入植物类的头文件,当有类需要引入多个植物类时,只需要引入这个头文件即可。

五、Zombies文件夹结构 

 Zombies文件夹存放所有的僵尸类。

六、Scenes文件夹结构 

Scenes文件夹用于存放游戏场景相关的代码文件。在Cocos2d-x游戏框架中,游戏是有多个场景构成的,多个场景可以相互切换。每个场景包含许多Layer(层),每个层又可以包含多个Sprite(精灵)。游戏场景中的所有植物、僵尸、子弹等都可以看作为精灵。

游戏中包含多个场景,例如游戏的加载场景、主菜单场景、植物选择场景、游戏场景等等。在每一个场景中都包含了大量的代码文件。本文只介绍结构,后续会详细介绍相关是代码。

  1.  EasterEggsScene表示菜单场景;
  2.  GameScene表示游戏场景;
  3.  HelpScene表示帮助场景;
  4.  LoadingScene表示游戏资源加载场景;
  5.  MainMenuScene表示主菜单场景;
  6.  SelectPlantsScene表示植物选择场景;
  7.  WorldScene表示世界选择场景;

1.GameScene 

GameScene表示游戏场景,这个场景也是整个项目中最复杂的部分之一。里面包含了多个层,如动画层,主要用于显示动画。背景层用于显示背景。控制层主要定义了整个游戏的运行逻辑以及玩家游戏操作逻辑等。除此之外还有游戏结束层、信息层、按钮层等。这里就不一一介绍了,后会详细接收。

2.MainMenuScene 

...

七、后续 

下一篇会详细讲解游戏的启动流程,后续将会详细讲解某些重要代码文件中的实现细节。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/427516
推荐阅读
相关标签
  

闽ICP备14008679号