-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathObstacles.java
More file actions
108 lines (100 loc) · 3.58 KB
/
Copy pathObstacles.java
File metadata and controls
108 lines (100 loc) · 3.58 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Objects;
import java.util.Random;
public class Obstacles {
private BufferedImage obstacleImage;
protected int coordX;
private final int coordY = 200;//on the ground
protected Rectangle obstacleRect;
Avatar avatar = new Avatar();
int score;
int move = 15;
public Obstacles() {
Random obstacleTypeGenerator = new Random();
int obstacleType = obstacleTypeGenerator.nextInt(3);
score = 0;
if(obstacleType ==0) {
try {
obstacleImage = ImageIO.read(Window.class.getResource("./assets/images/cactus1.png"));
} catch (IOException e) {
e.printStackTrace();
}
}else if(obstacleType ==1) {
try {
obstacleImage = ImageIO.read(Objects.requireNonNull(Window.class.getResource("./assets/images/cactus2.png")));
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
obstacleImage = ImageIO.read(Window.class.getResource("./assets/images/snail.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
Random obstaclePlacementGenerator = new Random();
coordX = obstaclePlacementGenerator.nextInt(avatar.x+1080-(avatar.x+200))+(avatar.x+200);
obstacleRect = new Rectangle();
}
public Rectangle getObstacleBound() {
return obstacleRect;
}
public void update(Obstacles obstacle, Avatar avatar, int gameState){
if((obstacle.getObstacleBound().intersects(avatar.avatarBound()))) {
avatar.setAlive(false);
}
if(gameState == 1 && coordX>=-10){
// move obstacle if in playing mode
coordX -= 15;
}
else {
Random rn = new Random();
int placement = rn.nextInt(500);
coordX=1100 + placement;
if (gameState == 1) {
updateScore();
}
Random obstacleTypeGenerator = new Random();
int obstacleType = obstacleTypeGenerator.nextInt(3);
if(obstacleType ==0) {
try {
obstacleImage = ImageIO.read(Window.class.getResource("./assets/images/cactus1.png"));
obstacleRect.width = 70;
obstacleRect.height = 70;
} catch (IOException e) {
e.printStackTrace();
}
}else if(obstacleType ==1) {
try {
obstacleImage = ImageIO.read(Objects.requireNonNull(Window.class.getResource("./assets/images/cactus2.png")));
obstacleRect.width = 80;
obstacleRect.height = 90;
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
obstacleImage = ImageIO.read(Window.class.getResource("./assets/images/snail.png"));
obstacleRect.width = 90;
obstacleRect.height = 60;
} catch (IOException e) {
e.printStackTrace();
}
}
}
obstacleRect.x = coordX;
obstacleRect.y = coordY;
}
public void updateScore(){
score+=10;
}
public int getScore(){
return score;
}
public void drawObstacle(Graphics g){
g.drawImage(obstacleImage, coordX, coordY, null);
}
}