这一篇我们来讲游戏中的植物是怎么实现的,在这个游戏Demo中,我们就不一一的把所有的植物都写出来的,在这里我们就写豌豆射手Pease(攻击型植物),向日葵SunFlower(生产型植物)以及坚果Nut(防御性植物)这三种,其中豌豆射手需要发射豌豆,也就是子弹,所有我们也要创建一个豌豆子弹类PeaseBullet来作为豌豆射手的子弹,向日葵能够生产太阳,所以我们也要创建一个太阳类Sun。
我们先来看看豌豆子弹PeaseBullet的创建,在src/app/下创建一个bullet文件夹,然后在该文件夹下创建PeaseBullet类,这个类很简单,我们看下面代码:
local PeaseBullet = class("PeaseBullet",function()
return display.newSprite("fight/bullet.png")
end)
function PeaseBullet:ctor()
self:setScale(0.5)
-- 子弹的攻击力,由豌豆射手决定
self.attackValue=0
end
-- 子弹小时的时候回调函数 self:getParent()就是豌豆射手 bullets是它的一个属性--弹夹,用来存放发射出来的子弹统一管理
function PeaseBullet:over()
-- 从弹夹中移除自身
table.removebyvalue(self:getParent().bullets, self)
self:removeFromParent()
end
return PeaseBullet
植物和僵尸一样,也分为很多种,那么他们也有一个共同的父类---植物基类,我们先来看看基类,
在src/app/下创建一个plant文件夹,然后在该文件夹下创建PlantBase类
local scheduler = require(cc.PACKAGE_NAME .. ".scheduler")
local PlantBase = class("PlantBase",function()