简介
植物大战僵尸95版是一款风靡全球的塔防游戏,玩家需要布置各种植物来保护自己的家园免受僵尸侵害。本文将分享植物大战僵尸95版的代码,供广大游戏爱好者参考学习。
多级标题
一级标题:植物大战僵尸95版代码概述
二级标题:植物类
三级标题:豌豆射手
三级标题:向日葵
三级标题:坚果墙
三级标题:双发射手
二级标题:僵尸类
三级标题:普通僵尸
三级标题:路障僵尸
三级标题:铁桶僵尸
三级标题:舞者僵尸
内容详细说明
一、植物类
1.豌豆射手
代码如下:
```java
public class Peashooter extends Plant {
public Peashooter() {
super("P", 100, 50);
}
@Override
public void attack() {
GameSystem.getInstance().addBullet(new Bullet(this.getPosition().getX() + 1, getPosition().getY()));
}
```
豌豆射手是一种常见的植物,可以喷射豌豆来攻击僵尸。它的攻击代码实现的是将子弹添加到游戏系统实例中,子弹的起始位置在豌豆射手的位置加1(因为子弹是从豌豆射手正前方发出)。
2.向日葵
代码如下:
```java
public class Sunflower extends Plant {
public Sunflower() {
super("S", 50, 50);
}
@Override
public void act() {
GameSystem.getInstance().addSun();
}
```
向日葵是一种提供阳光的植物,它的作用是为玩家提供游戏币,可以用来购买其他植物。它的行动代码实现的是将阳光添加到游戏系统实例中。
3.坚果墙
代码如下:
```java
public class WallNut extends Plant {
public WallNut() {
super("W", 300, 50);
}
@Override
public void hurt() {
super.hurt();
if (getLife() <= 0) {
setImage("w2.png");
setLife(-1);
}
}
```
坚果墙是一种防御性植物,可以阻挡僵尸的前进。它的受伤代码实现的是在生命值小于等于0时,将坚果墙设置为另一张图片(w2.png),并把生命值设置为-1,以使它不再受到其他攻击。
4.双发射手
代码如下:
```java
public class DoublePeas extends Plant {
public DoublePeas() {
super("D", 150, 50);
}
@Override
public void attack() {
GameSystem.getInstance().addBullet(new Bullet(this.getPosition().getX() + 1, getPosition().getY()));
GameSystem.getInstance().addBullet(new Bullet(this.getPosition().getX() + 1, getPosition().getY(), 1));
}
```
双发射手是一种可以同时喷射两个豌豆的植物,攻击力大于豌豆射手。它的攻击代码实现的是将两个子弹添加到游戏系统实例中,它们的起始位置都在双发射手的正前方,但是一个偏上,一个偏下(因为两个子弹间需要间隔一定距离)。
二、僵尸类
1.普通僵尸
代码如下:
```java
public class NormalZombie extends Zombie {
public NormalZombie() {
super("Z", 100, 50);
}
@Override
public void advance() {
super.advance();
if (isAlive()) {
GameSystem.getInstance().checkGameOver(this);
}
}
```
普通僵尸是一种常见的僵尸,可以通过前进来接近植物并攻击。它的前进代码实现的是调用父类的前进方法,并在它仍然存活的情况下,检查游戏是否结束(即是否有植物被僵尸攻击成功)。
2.路障僵尸
代码如下:
```java
public class BarrierZombie extends Zombie {
public BarrierZombie() {
super("Z", 200, 50);
}
```
路障僵尸是一种具有更多生命值的僵尸,可以在攻击前多承受一些伤害。它的代码实现跟普通僵尸并无不同。
3.铁桶僵尸
代码如下:
```java
public class BucketZombie extends Zombie {
public BucketZombie() {
super("Z", 300, 50);
setImage("z2.png");
}
@Override
public void hurt() {
super.hurt();
if (getLife() <= 200) {
setImage("z3.png");
}
}
```
铁桶僵尸是一种具有更多生命值和铁桶装甲的僵尸,可以更有效地承受攻击。它在受伤后,会根据生命值的不同状态,动态地改变图片(z2.png、z3.png)。
4.舞者僵尸
代码如下:
```java
public class DancerZombie extends Zombie {
public DancerZombie() {
super("Z", 200, 50);
}
@Override
public void act() {
GameSystem.getInstance().attackPlant(this);
GameSystem.getInstance().attackPlant(this);
}
```
舞者僵尸是一种可以攻击两个植物的僵尸,可以对玩家造成一定程度的威胁。它的行动代码实现的是调用游戏系统的攻击植物方法,攻击两个植物。