-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLevel.java
More file actions
138 lines (112 loc) · 3.56 KB
/
Level.java
File metadata and controls
138 lines (112 loc) · 3.56 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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
import java.awt.*;
import java.util.LinkedList;
public class Level {
/**
* Dialog = 1 -> Level Dialog fängt an
* = 0 -> Level Dialog startet nicht
*/
public int dialog = 0;
public Character mover;
public LinkedList<Runner> enemy = new LinkedList<>();
public Map[] maps;
private int level;
private GamePanel gamePanel;
private KeyManager keyListener;
private boolean gridlines;
public Level(GamePanel gp, int level, KeyManager keyListener) {
this.level = level;
gamePanel = gp;
this.keyListener = keyListener;
}
public void createLevelObjects(int mapAmount, int enemyAmount) {
maps = new Map[mapAmount];
mover = new Character(gamePanel, 0, 0, maps);
if (!enemy.isEmpty()) {
enemy.clear();
}
for (int i = 0; i < enemyAmount; i++) {
enemy.add(new Runner(gamePanel, 0, 0, maps));
}
dialog = 0;
}
public void update() {
if (GUI.keyInputToMove(keyListener).getX() != 0 || GUI.keyInputToMove(keyListener).getY() != 0) {
mover.setMove((int) GUI.keyInputToMove(keyListener).getX(), (int) GUI.keyInputToMove(keyListener).getY());
gamePanel.getCamera().centerOnObject(mover);
} // end of if
}
public void renderLevel(Graphics2D g2d) {
if (maps[0] != null) {
maps[0].renderMap(g2d);
}
if (enemy.size() > 0) {
for (int enemyamount = 0; enemyamount < enemy.size(); enemyamount++) {
if (enemy.get(enemyamount) != null) {
enemy.get(enemyamount).draw(g2d);
}
}
}
mover.draw(g2d);
// Item Maps :
for (int mapsAmount = 1; mapsAmount < maps.length; mapsAmount++) {
if (maps[mapsAmount] != null) {
maps[mapsAmount].renderMap(g2d);
}
}
}
public void setMap(int mapNumber, String tsPath, String pStatus, Point chapterOffset) {
maps[mapNumber] = new Map(gamePanel, tsPath, pStatus, chapterOffset);
}
public void setBaseMap(String tsPath, String pStatus) {
setMap(0, tsPath, pStatus, new Point(0, 0));
gamePanel.setCamera(maps[0].mapSizeX, maps[0].getMapSizeY(), maps[0].getChapterOffset());
}
public void setGridLines(boolean b) {
gridlines = b;
for (int i = 0; i < maps.length; i++) {
if (maps[i] != null) {
maps[i].setGridLines(b);
}
}
}
public void addNewEnemyOnTile(int xTile, int yTile, double pSpeed) {
addNewEnemy(xTile * Tile.TILEWIDTH, yTile * Tile.TILEHEIGHT, pSpeed);
}
public void addNewEnemy(int xPos, int yPos, double pSpeed) {
Runner r = new Runner(gamePanel, xPos, yPos, maps);
r.setSpeed(pSpeed);
addEnemy(r);
}
public void addEnemy(Runner r) {
enemy.add(r);
}
public void stop() {
mover.setSpeaking(true);
for (int i = 0; i < enemy.size(); i++) {
enemy.get(i).setSpeaking(true);
}
}
public void clear() {
}
public Map[] getMaps() {
return maps;
}
public Map getBaseMap() {
return getMaps()[0];
}
public Character getMover() {
return mover;
}
public LinkedList<Runner> getEnemyList() {
return enemy;
}
public Runner getEnemy(int enemyNumber) {
return enemy.get(enemyNumber);
}
public int getLevel() {
return level;
}
public boolean isGridlines() {
return gridlines;
}
}