Aufgeräumt

master
Jonathan Hager 6 years ago
parent 3a29990cd2
commit a15acbcaa8

@ -29,14 +29,21 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
Dungeon d; Dungeon d;
DungeonGenerator dg; DungeonGenerator dg;
MainMenu v; MainMenu v;
Entity[] e;
Timer tEntities; Timer tEntities;
GameScreen m; GameScreen m;
int[] tile;
int[] posRoom; int tileX;
int level; int tileY;
int roomPosX;
int roomPosY;
int roomX; int roomX;
int roomY; int roomY;
int level;
int roomAmount;
float volume; float volume;
Entity[] arrows; Entity[] arrows;
@ -65,26 +72,24 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
d = dg.generateDungeon(roomX - 1, roomY - 1, 48, new Player()); d = dg.generateDungeon(roomX - 1, roomY - 1, 48, new Player());
dg.ichWillSpielen(d); dg.ichWillSpielen(d);
tile = new int[2]; tileX = roomX / 2;
posRoom = new int[2]; tileY = roomY / 2;
int roomLengthX = d.getLevel()[0].getRooms().length; roomAmount = d.getLevel()[0].getRooms().length;
int roomLengthY = d.getLevel()[0].getRooms()[0].length;
int roomAmount = d.getLevel()[0].getRooms().length;
int startRoom = (int) (Math.random() * roomAmount); int startRoom = (int) (Math.random() * roomAmount);
level = 0; level = 0;
int k = 0; int k = 0;
for(int i = 0; i < roomLengthX; i++){ for(int i = 0; i < roomAmount; i++){
for(int j = 0; j < roomLengthY; j++){ for(int j = 0; j < roomAmount; j++){
if(d.getLevel()[level].getRooms()[i][j] != null){ if(d.getLevel()[level].getRooms()[i][j] != null){
if(k == startRoom){ if(k == startRoom){
// Startraum wurde ausgewählt // Startraum wurde ausgewählt
posRoom[0] = i; roomPosX = i;
posRoom[1] = j; roomPosY = j;
} }
@ -94,7 +99,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
} }
} }
e = new Entity[5]; d.setCurrentLevel(d.getLevel()[level]);
d.setCurrentRoom(d.getCurrentLevel().getRooms()[roomPosX][roomPosY]);
d.setCurrentEntities(d.getCurrentRoom().getEnemies());
Gdx.input.setInputProcessor(this); Gdx.input.setInputProcessor(this);
@ -103,9 +110,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
entityMovement.scheduleTask(new Timer.Task() { entityMovement.scheduleTask(new Timer.Task() {
@Override @Override
public void run() { public void run() {
for(int i = 0; i < e.length; i++){ for(int i = 0; i < d.getCurrentEntities().length; i++){
if(e[i] != null){ if(d.getCurrentEntities()[i] != null){
e[i].randomMove(roomX, roomY); d.getCurrentEntities()[i].randomMove(roomX, roomY);
} }
} }
} }
@ -125,16 +132,21 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(m != null){ if(m != null){
if(v == null){ if(v == null){
e = d.getLevel()[level].getRooms()[posRoom[0]][posRoom[1]].getEnemies();
// Position des Players, etc. werden aktualisiert // Position des Players, etc. werden aktualisiert
updateObjects(level, posRoom); updateObjects(level, roomPosX, roomPosY);
// Raum, in dem sich der Player jetzt befindet, wird aktualisiert
updateRoom(); // tile[] beinhaltet die x und y Nummer des tiles, in dem sich der Player befindet
tileX = (int) d.getPlayer().getxPos() / 48;
tileY = (int) d.getPlayer().getyPos() / 48;
if(tileX == 0 || tileX == roomX || tileY == 0 || tileY == roomY){
updateRoom();
}
// Render methode zum rendern der einzelnen Sprites wird aufgerufen // Render methode zum rendern der einzelnen Sprites wird aufgerufen
m.render(batch, d.getPlayer(), e, arrows, tile, level, posRoom); m.render(batch, d.getPlayer(), d.getCurrentEntities(), arrows, tileX, tileY, level, roomPosX, roomPosY);
} }
} }
} }
@ -145,11 +157,16 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
batch.dispose(); batch.dispose();
} }
public void updateObjects(int level, int[] posRoom){ public void updateObjects(int level, int roomPosX, int roomPosY){
MapLayers layers = m.getM().getMaps()[level][posRoom[0]][posRoom[1]].getLayers(); MapLayers layers = m.getM().getMaps()[level][roomPosX][roomPosY].getLayers();
MapObjects objects = layers.get(0).getObjects(); MapObjects objects = layers.get(0).getObjects();
System.out.println(objects.getCount()); //System.out.println(objects.getCount());
updatePlayer(objects);
}
public void updatePlayer(MapObjects objects){
float x = d.getPlayer().getxPos(); float x = d.getPlayer().getxPos();
d.getPlayer().updateX(); d.getPlayer().updateX();
@ -185,86 +202,76 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
} }
public void updateRoom(){ public void updateRoom(){
// tile[] beinhaltet die x und y Nummer des tiles, in dem sich der Player befindet
tile[0] = (int) d.getPlayer().getxPos() / 48;
tile[1] = (int) d.getPlayer().getyPos() / 48;
System.out.println(roomX + " " + roomY); //System.out.println(roomX + " " + roomY);
//System.out.println("pos Player tiles: " + tileX + " " + tileY);
System.out.println("pos Player tiles: " + tile[0] + " " + tile[1]); // Temp variablen werden wieder auf ihre Plätze geschrieben
int xPos = tile[0]; // Entities
int yPos = tile[1]; d.getCurrentRoom().setEnemies(d.getCurrentEntities());
// Room
d.getCurrentLevel().setRoom(d.getCurrentRoom(), roomPosX, roomPosY);
// Level
d.setLevel(d.getCurrentLevel(), level);
// oben // oben
if(xPos == (roomX / 2) && yPos == roomY){ if(tileX == (roomX / 2) && tileY == roomY){
System.out.println("oben"); System.out.println("oben");
posRoom[1] += 1; roomPosY += 1;
d.getPlayer().setxPos((roomX / 2)* 48); d.getPlayer().setxPos((roomX / 2)* 48);
d.getPlayer().setyPos(48); d.getPlayer().setyPos(48);
} }
// rechts // rechts
if(xPos == roomX && yPos == (roomY / 2)){ if(tileX == roomX && tileY == (roomY / 2)){
System.out.println("rechts"); System.out.println("rechts");
posRoom[0] += 1; roomPosX += 1;
d.getPlayer().setxPos(48); d.getPlayer().setxPos(48);
d.getPlayer().setyPos((roomY / 2)*48); d.getPlayer().setyPos((roomY / 2)*48);
} }
// unten // unten
if(xPos == (roomX / 2) && yPos == 0){ if(tileX == (roomX / 2) && tileY == 0){
System.out.println("unten"); System.out.println("unten");
posRoom[1] -= 1; roomPosY -= 1;
d.getPlayer().setxPos((roomX / 2)*48); d.getPlayer().setxPos((roomX / 2)*48);
d.getPlayer().setyPos(roomY*48 - 48); d.getPlayer().setyPos(roomY*48 - 48);
} }
// links // links
if(xPos == 0 && yPos == (roomY / 2)){ if(tileX == 0 && tileY == (roomY / 2)){
System.out.println("links"); System.out.println("links");
posRoom[0] -= 1; roomPosX -= 1;
d.getPlayer().setxPos((roomX*48) - 48); d.getPlayer().setxPos((roomX*48) - 48);
d.getPlayer().setyPos((roomY / 2)*48); d.getPlayer().setyPos((roomY / 2)*48);
} }
if(posRoom[0] == d.getLevel()[level].getExit()[0] && posRoom[1] == d.getLevel()[level].getExit()[1]){ if(roomPosX == d.getCurrentLevel().getExit()[0] && roomPosY == d.getCurrentLevel().getExit()[1]){
if(level < 6){ if(level < 6){
System.out.println("Nächstes Level, here we go"); System.out.println("Nächstes Level, here we go");
level++; level++;
tile[0] = roomX / 2; tileX = roomX / 2;
tile[1] = roomY / 2; tileY = roomY / 2;
int roomAmount = d.getLevel()[level].getRooms().length; int roomAmount = d.getLevel()[level].getRooms().length;
posRoom[0] = roomAmount / 2; roomPosX = roomAmount / 2;
posRoom[1] = roomAmount / 2; roomPosY = roomAmount / 2;
} }
} }
}
public void newEntity(Entity ent, float x, float y, int lvl){ d.setCurrentLevel(d.getLevel()[level]);
for(int i = 0; i < e.length ; i++){ d.setCurrentRoom(d.getCurrentLevel().getRooms()[roomPosX][roomPosY]);
if(e[i] == null){ d.setCurrentEntities(d.getCurrentRoom().getEnemies());
switch(ent.getId()){
case 0:
e[i] = new Archer(x,y,lvl);
i = 11;
break;
case 1:
e[i] = new Swordsman(x,y,lvl);
i = 11;
break;
}
}
}
} }
@Override @Override
public boolean keyDown(int keycode) { public boolean keyDown(int keycode) {
if(keycode == Input.Keys.A){ if(keycode == Input.Keys.A){
@ -302,7 +309,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(keycode == Input.Keys.E){ if(keycode == Input.Keys.E){
if(v != null){} if(v != null){}
if(m != null){ if(m != null){
d.getLevel()[level].getRooms()[posRoom[0]][posRoom[1]].setEnemies(m.playerAttack(e, d.getPlayer())); d.setCurrentEntities(m.playerAttack(d.getCurrentEntities(), d.getPlayer()));
} }
} }
@ -423,11 +430,4 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
return false; return false;
} }
public Entity[] getEntities(){
return e;
}
} }

@ -14,14 +14,14 @@ import com.dungeoncrawler.model.entities.Player;
public class Dungeon { public class Dungeon {
private Level level[]; private Level level[];
private Player player; private Player player;
private int playerRoom;
private int playerLevel; private Level currentLevel;
private Room currentRoom;
private Entity[] currentEntities;
public Dungeon(Player player){ public Dungeon(Player player){
this.level = new Level[7]; this.level = new Level[7];
this.player = player; this.player = player;
this.playerRoom = 0;
this.playerLevel = 0;
} }
public void update(){ public void update(){
@ -63,32 +63,45 @@ public class Dungeon {
} }
/** /**
* @return the playerRoom * @return the currentLevel
*/
public Level getCurrentLevel() {
return currentLevel;
}
/**
* @param currentLevel the currentLevel to set
*/ */
public int getPlayerRoom() { public void setCurrentLevel(Level currentLevel) {
return playerRoom; this.currentLevel = currentLevel;
} }
/** /**
* @param playerRoom the playerRoom to set * @return the currentRoom
*/ */
public void setPlayerRoom(int playerRoom) { public Room getCurrentRoom() {
this.playerRoom = playerRoom; return currentRoom;
} }
/** /**
* @return the playerLevel * @param currentRoom the currentRoom to set
*/ */
public int getPlayerLevel() { public void setCurrentRoom(Room currentRoom) {
return playerLevel; this.currentRoom = currentRoom;
} }
/** /**
* @param playerLevel the playerLevel to set * @return the currentEntities
*/ */
public void setPlayerLevel(int playerLevel) { public Entity[] getCurrentEntities() {
this.playerLevel = playerLevel; return currentEntities;
} }
/**
* @param currentEntities the currentEntities to set
*/
public void setCurrentEntities(Entity[] currentEntities) {
this.currentEntities = currentEntities;
}
} }

@ -12,11 +12,9 @@ import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.TiledMapRenderer; import com.badlogic.gdx.maps.tiled.TiledMapRenderer;
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
import com.badlogic.gdx.math.Intersector; import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle;
import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.Dungeon;
import com.dungeoncrawler.model.Entity; import com.dungeoncrawler.model.Entity;
import com.dungeoncrawler.model.entities.*; import com.dungeoncrawler.model.entities.*;
import com.badlogic.gdx.utils.Timer;
public class GameScreen { public class GameScreen {
//CONTROLS //CONTROLS
@ -52,10 +50,10 @@ public class GameScreen {
public GameScreen(Dungeon d, float volume) { public GameScreen(Dungeon d, float volume) {
//CONTROLS //CONTROLS
ctr = new Texture("controls.png"); ctr = new Texture("controls.png");
controls = new Sprite(ctr); controls = new Sprite(ctr);
controls.setX(-400f); controls.setX(-400f);
controls.setY(0); controls.setY(0);
//PLAYER //PLAYER
@ -98,7 +96,7 @@ public class GameScreen {
} }
public void render (SpriteBatch batch, Player p, Entity[] e, Entity[] arrows, int[] tile, int level, int[] posRoom) { public void render (SpriteBatch batch, Player p, Entity[] e, Entity[] arrows, int tileX, int tileY, int level, int roomPosX, int roomPosY) {
Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
@ -107,10 +105,7 @@ public class GameScreen {
player.setX(p.getxPos()); player.setX(p.getxPos());
player.setY(p.getyPos()); player.setY(p.getyPos());
int xPosRoom = posRoom[0]; tm = getM().getMaps()[level][roomPosX][roomPosY];
int yPosRoom = posRoom[1];
tm = getM().getMaps()[level][xPosRoom][yPosRoom];
if(tm == null){ if(tm == null){
System.out.println("Dein scheiß geht net"); System.out.println("Dein scheiß geht net");

Loading…
Cancel
Save