-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBlockyWorld.java
More file actions
111 lines (91 loc) · 2.81 KB
/
BlockyWorld.java
File metadata and controls
111 lines (91 loc) · 2.81 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
109
110
111
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BlockyWorld extends JPanel implements KeyListener {
private int playerX, playerY;
private int[][] map;
private ArrayList<Enemy> enemies;
public BlockyWorld() {
JFrame frame = new JFrame("BlockyWorld");
frame.setSize(640, 480);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(this);
frame.addKeyListener(this);
map = new int[10][10];
enemies = new ArrayList<Enemy>();
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
map[i][j] = 0;
}
}
playerX = 5;
playerY = 5;
enemies.add(new Enemy(2, 2));
enemies.add(new Enemy(7, 7));
enemies.add(new Enemy(1, 9));
enemies.add(new Enemy(8, 1));
frame.setVisible(true);
}
public void paint(Graphics g) {
super.paint(g);
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
if(map[i][j] == 0) {
g.setColor(Color.WHITE);
} else {
g.setColor(Color.BLACK);
}
g.fillRect(i * 32, j * 32, 32, 32);
}
}
g.setColor(Color.BLUE);
g.fillRect(playerX * 32, playerY * 32, 32, 32);
g.setColor(Color.RED);
for(Enemy e : enemies) {
g.fillRect(e.x * 32, e.y * 32, 32, 32);
}
}
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if(code == KeyEvent.VK_LEFT) {
if(playerX > 0) playerX--;
} else if(code == KeyEvent.VK_RIGHT) {
if(playerX < 9) playerX++;
} else if(code == KeyEvent.VK_UP) {
if(playerY > 0) playerY--;
} else if(code == KeyEvent.VK_DOWN) {
if(playerY < 9) playerY++;
} else if(code == KeyEvent.VK_SPACE) {
if(map[playerX][playerY] == 0) {
map[playerX][playerY] = 1;
} else {
map[playerX][playerY] = 0;
}
}
for(int i = 0; i < enemies.size(); i++) {
Enemy e1 = enemies.get(i);
if(playerX == e1.x && playerY == e1.y) {
enemies.remove(i);
break;
}
}
repaint();
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
public static void main(String[] args) {
new BlockyWorld();
}
class Enemy {
int x, y;
public Enemy(int x, int y) {
this.x = x;
this.y = y;
}
}
}