这一篇开始,我们会用三四篇的篇幅来讲核心层,也就是战斗层FightLayer,该层的功能主要包括一波一波僵尸的出现,根据你选择的植物类型和添加的位置创建并添加植物,以及植物与僵尸之间的互相攻击逻辑,在这一篇,我们先来将其中之一,也就是僵尸的进攻。
在src/app/layers下创建一个FightLayer.lua文件,创建FightLayer类继承Layer,我们先来说说这个类有那些属性:
植物类型属性choosePlantType,默认为NOT_PLANT,这些标志性的值在配置文件config.lua中声明;
地块上是否还可以放植物的属性 lawnMatrix,是一个矩阵;
当前波数currentWaveNum和总波数totalWaveNum;
各种植物,产物以及僵尸的集合等等,以下就是我们的代码,每句代码都有注释(很简单的除外)
local scheduler = require(cc.PACKAGE_NAME .. ".scheduler")
local NormalZombies = require("app.zombies.NormalZombies")
local FightLayer = class("FightLayer",function()
return display.newLayer()
end)
function FightLayer:ctor()
-- 不屏蔽事件的传递
self:setTouchSwallowEnabled(false)
-- 被选择的植物类型默认为NOT_PLANT 无植物
self.choosePlantType=NOT_PLANT
-- 标志土地位置是否可以放植物的矩阵 默认值都为true 都可以放植物
self.lawnMatrix={}
-- 初始化
self:initMatrix()
-- 当前波数
self.currentWaveNum=0
-- 总波数
self.totalWaveNum=10
-- 进度条
self.pro