-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGameBoard.java
More file actions
90 lines (72 loc) · 2.88 KB
/
GameBoard.java
File metadata and controls
90 lines (72 loc) · 2.88 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
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.util.ArrayList;
public class GameBoard extends JPanel {
private static final Color BACKGROUND = new Color(204, 204, 204);
private Point mouse;
private Graphics myBuffer;
private BufferedImage myImage;
private Player player;
private ArrayList<Bullet> bulletsOnScreen;
public GameBoard() {
myImage = new BufferedImage(350, 500, BufferedImage.TYPE_INT_RGB);
myBuffer = myImage.getGraphics();
myBuffer.setColor(BACKGROUND);
BufferedImage cursorImg = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB);
Cursor blankCursor = Toolkit.getDefaultToolkit().createCustomCursor(cursorImg, new Point(0, 0), "blank cursor");
setCursor(blankCursor);
bulletsOnScreen = new ArrayList<Bullet>();
myBuffer.setColor(BACKGROUND);
myBuffer.fillRect(0, 0, 350, 500);
player = new Player();
player.draw(myBuffer);
Timer shoot = new Timer(100, new ShootListener());
shoot.start();
Timer runGame = new Timer(15, new GameListener());
runGame.start();
}
private class GameListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
myBuffer.setColor(BACKGROUND);
myBuffer.fillRect(0, 0, 350, 500);
mouse = getMousePosition();
if(mouse != null) {
player.setX(mouse.x - 25);
player.setY(mouse.y);
if(player.getX() < 0) {
player.setX(0);
}
if(player.getX() > 325) {
player.setX(325);
}
}
player.draw(myBuffer);
for(int i = 0; i < bulletsOnScreen.size(); i++) {
bulletsOnScreen.get(i).move(0);
bulletsOnScreen.get(i).draw(myBuffer);
if(isOffScreen(bulletsOnScreen.get(i))) {
bulletsOnScreen.remove(i);
}
}
repaint();
}
}
public boolean isOffScreen(Bullet bullet) {
return bullet.getY() < -30 || bullet.getY() > 530 || bullet.getX() < -30 || bullet.getX() > 380;
}
private class ShootListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
playerAttack();
}
}
public void paintComponent(Graphics g)
{
g.drawImage(myImage, 0, 0, getWidth(), getHeight(), null);
}
public void playerAttack() {
bulletsOnScreen.add(new Bullet(player.getX() + 13, player.getY() + 10, 10, 18, 0, new ImageIcon("Sprites/enemy_bolt1.png")));
bulletsOnScreen.add(new Bullet(player.getX() + 26, player.getY() + 10, 10, 18, 0, new ImageIcon("Sprites/enemy_bolt1.png")));
}
}