1
1
package game ;
2
2
3
3
import frame .InputHandler ;
4
+ import game .enitties .Bullet ;
5
+ import game .enitties .Enemy ;
6
+
7
+ import java .util .ArrayList ;
8
+ import java .util .List ;
4
9
5
10
import java .awt .*;
6
11
import java .awt .event .KeyEvent ;
@@ -10,9 +15,22 @@ public class Game {
10
15
private InputHandler ih ;
11
16
private Player p ;
12
17
18
+ private List <Enemy > enemies ;
19
+ private List <Bullet > bullets ;
20
+
21
+ private int lives = 10 ;
22
+
13
23
public Game (Window w ) {
14
- p = new Player ();
15
- ih = new InputHandler ();
24
+ p = new Player (this );
25
+ ih = new InputHandler (this );
26
+
27
+ enemies = new ArrayList <>();
28
+ for (int i = 0 ; i < 10 ; i ++) {
29
+ enemies .add (new Enemy (this , frame .Window .width /10 * i + frame .Window .width / 20 , (int ) (32 + (Math .random () * 10 ))));
30
+ enemies .add (new Enemy (this , frame .Window .width /10 * i , (int ) (96 + (Math .random () * 10 ))));
31
+ }
32
+
33
+ bullets = new ArrayList <>();
16
34
17
35
w .addKeyListener (ih );
18
36
}
@@ -27,13 +45,47 @@ public void update(long dt) {
27
45
p .setMX (mx );
28
46
p .update (dt );
29
47
30
- if (ih .isKeyPressed (KeyEvent . VK_SPACE )) {
48
+ if (ih .isKeyPressed (32 )) {
31
49
p .shoot ();
32
50
}
33
51
52
+
53
+ for (int i = 0 ; i < enemies .size (); i ++) enemies .get (i ).update (dt );
54
+ for (int i = 0 ; i < bullets .size (); i ++) bullets .get (i ).update (dt );
34
55
}
35
56
36
57
public void draw (Graphics g ) {
37
58
p .draw (g );
59
+ for (int i = 0 ; i < enemies .size (); i ++) enemies .get (i ).draw (g );
60
+ for (int i = 0 ; i < bullets .size (); i ++) bullets .get (i ).draw (g );
61
+
62
+ g .setColor (Color .WHITE );
63
+ g .drawString ("Lives: " + lives , 16 , 32 );
64
+ }
65
+
66
+ public void spawnBullet (Bullet b ) {
67
+ bullets .add (b );
68
+ }
69
+
70
+ public void removeEnemy (Enemy e ) {
71
+ enemies .remove (e );
72
+ if (lives < 0 || enemies .size () == 0 ) {
73
+ System .exit (0 );
74
+ }
75
+ }
76
+
77
+ public void removeBullet (Bullet bullet ) {
78
+ bullets .remove (bullet );
79
+ }
80
+
81
+ public List <Enemy > getEnemies () {
82
+ return enemies ;
83
+ }
84
+
85
+ public void removeLive () {
86
+ lives --;
87
+ if (lives < 0 || enemies .size () == 0 ) {
88
+ System .exit (0 );
89
+ }
38
90
}
39
91
}
0 commit comments