-
Notifications
You must be signed in to change notification settings - Fork 0
/
Character.java
64 lines (50 loc) · 1.35 KB
/
Character.java
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
package uet.oop.bomberman.entities.character;
import uet.oop.bomberman.Board;
import uet.oop.bomberman.Game;
import uet.oop.bomberman.entities.AnimatedEntitiy;
import uet.oop.bomberman.graphics.Screen;
/**
* Bao gồm Bomber và Enemy
*/
public abstract class Character extends AnimatedEntitiy {
protected Board _board;
protected int _direction = -1;
protected boolean _alive = true;
protected boolean _moving = false;
public int _timeAfter = 40;
public Character(int x, int y, Board board) {
_x = x;
_y = y;
_board = board;
}
@Override
public abstract void update();
@Override
public abstract void render(Screen screen);
/**
* Tính toán hướng đi
*/
protected abstract void calculateMove();
protected abstract void move(double xa, double ya);
/**
* Được gọi khi đối tượng bị tiêu diệt
*/
public abstract void kill();
/**
* Xử lý hiệu ứng bị tiêu diệt
*/
protected abstract void afterKill();
/**
* Kiểm tra xem đối tượng có di chuyển tới vị trí đã tính toán hay không
* @param x
* @param y
* @return
*/
protected abstract boolean canMove(double x, double y);
protected double getXMessage() {
return (_x * Game.SCALE) + (_sprite.SIZE / 2 * Game.SCALE);
}
protected double getYMessage() {
return (_y* Game.SCALE) - (_sprite.SIZE / 2 * Game.SCALE);
}
}