我正在创造一个自上而下的射手,僵尸在追逐你。我添加了所有的逻辑,所以僵尸跟随中心的玩家,如果僵尸与玩家相交,则玩家输了。 目前只有一个僵尸在游戏中。但是我希望能够在没有更多代码的情况下添加更多的僵尸。 我希望有一个部分,我可以用它来例如在随机位置添加一个新的。
public void addZombie(){}
我正在使用绘画方法。
这是僵尸类。它被添加到面板中。提前谢谢。
package zombieGame;
import javax.swing.ImageIcon;
public class Zombie extends Sprite implements Commons {
String zombie = "/images/zombieUp.png";
int width1 = (int) screenSize.getWidth();
int height1 = (int) screenSize.getHeight();
//Move Left/Right
int dx;
int dy;
//Directions
boolean upLeft;
boolean upRight;
boolean downLeft;
boolean downRight;
boolean left;
boolean right;
boolean up;
boolean down;
public Zombie() {
if (zombie != null) {
ImageIcon ii = new ImageIcon(this.getClass().getResource(zombie));
image = ii.getImage();
width = image.getWidth(null);
height = image.getHeight(null);
resetState();
}
}
public void move() {
if (zombie != null) {
x += dx;
y += dy;
animate();
}
}
public void animate() {
if (zombie != null) {
//If inbetween X
if (x + Board.amountX > width1 / 2 && x + Board.amountX < width1 / 2 + 3) {
dx = 0;
}
//Move right
if (x + Board.amountX < width1 / 2) {
dx = 1;
right = true;
left = false;
} else {
right = false;
}
//move left
if (x + Board.amountX > width1 / 2 + 3) {
dx = -1;
left = true;
right = false;
} else {
left = false;
}
//If inbetween Y
if (y + Board.amountY > height1 / 2 - 2 && y + Board.amountY < height1 / 2 + 3) {
dy = 0;
}
//move down
if (y + Board.amountY < height1 / 2 - 2) {
dy = 1;
down = true;
up = false;
} else {
down = false;
}
//Move up
if (y + Board.amountY > height1 / 2 + 3) {
dy = -1;
up = true;
down = false;
} else {
up = false;
}
if (left) {
zombie = "/images/zombieLeft.png";
}
if (right) {
zombie = "/images/zombieRight.png";
}
if (up) {
zombie = "/images/zombieUp.png";
}
if (down) {
zombie = "/images/zombieDown.png";
}
if (up && left) {
zombie = "/images/zombieUpLeft.png";
}
if (up && right) {
zombie = "/images/zombieUpRight.png";
}
if (down && left) {
zombie = "/images/zombieDownLeft.png";
}
if (down && right) {
zombie = "/images/zombieDownRight.png";
}
ImageIcon ii = new ImageIcon(this.getClass().getResource(zombie));
image = ii.getImage();
width = image.getWidth(null);
height = image.getHeight(null);
}
}
public void resetState() {
x = 200;
y = 385;
}
答案 0 :(得分:1)
假设您希望在给定时间内拥有最多10个僵尸。因此,在开始时创建一个由10个僵尸组成的池(一组10个僵尸)。从你的阵列/池中随机生成一个僵尸。当你想要产生另一个时,从你的游泳池中获取另一个僵尸,这个僵尸不活跃或在屏幕上产生它。更新活着的僵尸(你应该在你的僵尸类中有一个布尔标志,也许你知道僵尸是否在屏幕上,所以你不更新/渲染一个看不见的僵尸)。