-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathRunZombie.java
62 lines (54 loc) · 2.57 KB
/
RunZombie.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import javax.swing.JOptionPane;
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
/**
*
* @author ADMIN
*/
public class RunZombie extends Zombie{
public RunZombie(GamePanel parent,int lane){
super(parent,lane);
health = 2000;
}
@Override
public void advance(){
if(isMoving) { //kiểm tra zombie có di chuyển không nếu là true thì tiếp tục
boolean isCollides = false; // va chạm false
Collider collided = null; // tạo một đối tượng va chạm
for (int i = myLane * 9; i < (myLane + 1) * 9; i++) { //đoạn mã code này kiểm tra có trong vùng va chạm không
if (gp.colliders[i].assignedPlant != null && gp.colliders[i].isInsideCollider(posX)) {
isCollides = true;
collided = gp.colliders[i]; // đối tượng collider được gán cho biến collided
}
}
if (!isCollides) { // không va chạm
if(slowInt>0){ // bị bắn đạn frezze
if(slowInt % 2 == 0) { // nếu biến slowint là số chẵn thì zombie được di chuyển
posX--; // nếu là số lẽ thì sẽ không di chuyển
}
slowInt--; // sau khi thực hiện xong hết slowint sẽ tự trừ đi 1
}else {
if (health >= 1000){
posX-= 2;
}
else if (health < 1000){
posX -=4;
}// nếu không bị làm chậm và không va chạm thì posx zombie -1
}
} else {
collided.assignedPlant.health -= 100; // máu của plant -10
if (collided.assignedPlant.health < 0){ // nếu máu của plant bé hơn 0 thì remove plant
collided.removePlant();
}
}
if (posX < 0) { // zombie đi hết đường đi
isMoving = false;
JOptionPane.showMessageDialog(gp,"ZOMBIES KILLED THE GUARDIANS !" + '\n' + "Starting the level again");// trình một cửa sổ thông báo kết thúc game
GameWindow.gw.dispose();
GameWindow.gw = new GameWindow();
}
}
}
}