-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSpriteVector.java
More file actions
46 lines (36 loc) · 967 Bytes
/
SpriteVector.java
File metadata and controls
46 lines (36 loc) · 967 Bytes
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
//package bricks;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.Vector;
/* Множество всех спрайтов находящихся на игровом поле.
* Выделен в отдельный класс для "разгрузки"
* игрового поля.
*/
class SpriteVector extends ArrayList {
public void draw(Graphics g) {
for (int i = 0; i < size(); i++)
((Sprite) get(i)).draw(g);
}
/* Проверка коллизии */
public Sprite testCollision(Sprite test) {
for (int i = 0; i < size(); i++) {
Sprite s = (Sprite) get(i);
if (test == s)
continue;
if (test.testCollision(s))
return s;
}
return null;
}
/* Обновить состояние всех спрайтов */
public void update() {
for (int i = 0; i < size(); i++) {
Sprite s = (Sprite) get(i);
s.update();
if (s.isDead()) {
remove(i);
continue;
}
}
}
}