1.总体介绍
本次大作业,用面向对象的思想和方法,在实现了所有基本功能以外,还实现了许多其他的附加功能。
3.植物与僵尸的设计
3.1 植物的设计
本次大作业实现了三种植物,向日葵(sunflower)、豌豆射手(pea)、坚果墙(wallnut),均继承自父类 plant 类。
3.1.1 植物类(plant)
plant 类是所有植物的父类,其成员变量为所有植物共同的属性,life(生命值),price(消耗阳光值),coolingtime(冷却时间),row、col(所在的行和列数),mediaPlayer_plant(种植时的声音),plantSwingMovie(植物不在攻击状态时的动画)等等。
在构造函数里,初始化了 mediaPlayer_plant,保证每种一个植物时会有对应的音效播放。
3.1.2 向日葵类(sunflower)
除了继承自父类的成员变量外,自己的成员变量全部和生产阳光有关。另外还有一个 slot : slot_produceSunshine() ,这个slot 的功能是让每个向日葵每段时间(10 秒)自动产生一个阳光。
在构造函数里,初始化了向日葵的动画、自己的时间器、和阳光。
3.1.3 坚果类(wallNut)
因为坚果只有挨吃这一项功能,所以除了继承自父类的成员变量外,并没有自己的成员变量。只是在构造函数里将冷却时间和价格初始化了。