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;
DungeonGenerator dg;
MainMenu v;
Entity[] e;
Timer tEntities;
GameScreen m;
int[] tile;
int[] posRoom;
int level;
int tileX;
int tileY;
int roomPosX;
int roomPosY;
int roomX;
int roomY;
int level;
int roomAmount;
float volume;
Entity[] arrows;
@ -65,26 +72,24 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
d = dg.generateDungeon(roomX - 1, roomY - 1, 48, new Player());
dg.ichWillSpielen(d);
tile = new int[2];
posRoom = new int[2];
tileX = roomX / 2;
tileY = roomY / 2;
int roomLengthX = d.getLevel()[0].getRooms().length;
int roomLengthY = d.getLevel()[0].getRooms()[0].length;
int roomAmount = d.getLevel()[0].getRooms().length;
roomAmount = d.getLevel()[0].getRooms().length;
int startRoom = (int) (Math.random() * roomAmount);
level = 0;
int k = 0;
for(int i = 0; i < roomLengthX; i++){
for(int j = 0; j < roomLengthY; j++){
for(int i = 0; i < roomAmount; i++){
for(int j = 0; j < roomAmount; j++){
if(d.getLevel()[level].getRooms()[i][j] != null){
if(k == startRoom){
// Startraum wurde ausgewählt
posRoom[0] = i;
posRoom[1] = j;
roomPosX = i;
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);
@ -103,9 +110,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
entityMovement.scheduleTask(new Timer.Task() {
@Override
public void run() {
for(int i = 0; i < e.length; i++){
if(e[i] != null){
e[i].randomMove(roomX, roomY);
for(int i = 0; i < d.getCurrentEntities().length; i++){
if(d.getCurrentEntities()[i] != null){
d.getCurrentEntities()[i].randomMove(roomX, roomY);
}
}
}
@ -125,16 +132,21 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(m != null){
if(v == null){
e = d.getLevel()[level].getRooms()[posRoom[0]][posRoom[1]].getEnemies();
// Position des Players, etc. werden aktualisiert
updateObjects(level, posRoom);
updateObjects(level, roomPosX, roomPosY);
// 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;
// Raum, in dem sich der Player jetzt befindet, wird aktualisiert
updateRoom();
if(tileX == 0 || tileX == roomX || tileY == 0 || tileY == roomY){
updateRoom();
}
// 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();
}
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();
System.out.println(objects.getCount());
//System.out.println(objects.getCount());
updatePlayer(objects);
}
public void updatePlayer(MapObjects objects){
float x = d.getPlayer().getxPos();
d.getPlayer().updateX();
@ -185,86 +202,76 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
}
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("pos Player tiles: " + tile[0] + " " + tile[1]);
int xPos = tile[0];
int yPos = tile[1];
//System.out.println(roomX + " " + roomY);
//System.out.println("pos Player tiles: " + tileX + " " + tileY);
// Temp variablen werden wieder auf ihre Plätze geschrieben
// Entities
d.getCurrentRoom().setEnemies(d.getCurrentEntities());
// Room
d.getCurrentLevel().setRoom(d.getCurrentRoom(), roomPosX, roomPosY);
// Level
d.setLevel(d.getCurrentLevel(), level);
// oben
if(xPos == (roomX / 2) && yPos == roomY){
if(tileX == (roomX / 2) && tileY == roomY){
System.out.println("oben");
posRoom[1] += 1;
roomPosY += 1;
d.getPlayer().setxPos((roomX / 2)* 48);
d.getPlayer().setyPos(48);
}
// rechts
if(xPos == roomX && yPos == (roomY / 2)){
if(tileX == roomX && tileY == (roomY / 2)){
System.out.println("rechts");
posRoom[0] += 1;
roomPosX += 1;
d.getPlayer().setxPos(48);
d.getPlayer().setyPos((roomY / 2)*48);
}
// unten
if(xPos == (roomX / 2) && yPos == 0){
if(tileX == (roomX / 2) && tileY == 0){
System.out.println("unten");
posRoom[1] -= 1;
roomPosY -= 1;
d.getPlayer().setxPos((roomX / 2)*48);
d.getPlayer().setyPos(roomY*48 - 48);
}
// links
if(xPos == 0 && yPos == (roomY / 2)){
if(tileX == 0 && tileY == (roomY / 2)){
System.out.println("links");
posRoom[0] -= 1;
roomPosX -= 1;
d.getPlayer().setxPos((roomX*48) - 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){
System.out.println("Nächstes Level, here we go");
level++;
tile[0] = roomX / 2;
tile[1] = roomY / 2;
tileX = roomX / 2;
tileY = roomY / 2;
int roomAmount = d.getLevel()[level].getRooms().length;
posRoom[0] = roomAmount / 2;
posRoom[1] = roomAmount / 2;
roomPosX = roomAmount / 2;
roomPosY = roomAmount / 2;
}
}
}
public void newEntity(Entity ent, float x, float y, int lvl){
for(int i = 0; i < e.length ; i++){
if(e[i] == null){
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;
}
}
}
d.setCurrentLevel(d.getLevel()[level]);
d.setCurrentRoom(d.getCurrentLevel().getRooms()[roomPosX][roomPosY]);
d.setCurrentEntities(d.getCurrentRoom().getEnemies());
}
@Override
public boolean keyDown(int keycode) {
if(keycode == Input.Keys.A){
@ -302,7 +309,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(keycode == Input.Keys.E){
if(v != 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;
}
public Entity[] getEntities(){
return e;
}
}

@ -14,14 +14,14 @@ import com.dungeoncrawler.model.entities.Player;
public class Dungeon {
private Level level[];
private Player player;
private int playerRoom;
private int playerLevel;
private Level currentLevel;
private Room currentRoom;
private Entity[] currentEntities;
public Dungeon(Player player){
this.level = new Level[7];
this.player = player;
this.playerRoom = 0;
this.playerLevel = 0;
}
public void update(){
@ -61,34 +61,47 @@ public class Dungeon {
public void setPlayer(Player player) {
this.player = player;
}
/**
* @return the playerRoom
* @return the currentLevel
*/
public int getPlayerRoom() {
return playerRoom;
public Level getCurrentLevel() {
return currentLevel;
}
/**
* @param playerRoom the playerRoom to set
* @param currentLevel the currentLevel to set
*/
public void setPlayerRoom(int playerRoom) {
this.playerRoom = playerRoom;
public void setCurrentLevel(Level currentLevel) {
this.currentLevel = currentLevel;
}
/**
* @return the playerLevel
* @return the currentRoom
*/
public int getPlayerLevel() {
return playerLevel;
public Room getCurrentRoom() {
return currentRoom;
}
/**
* @param playerLevel the playerLevel to set
* @param currentRoom the currentRoom to set
*/
public void setPlayerLevel(int playerLevel) {
this.playerLevel = playerLevel;
public void setCurrentRoom(Room currentRoom) {
this.currentRoom = currentRoom;
}
/**
* @return the currentEntities
*/
public Entity[] getCurrentEntities() {
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.renderers.OrthogonalTiledMapRenderer;
import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle;
import com.dungeoncrawler.model.Dungeon;
import com.dungeoncrawler.model.Entity;
import com.dungeoncrawler.model.entities.*;
import com.badlogic.gdx.utils.Timer;
public class GameScreen {
//CONTROLS
@ -52,10 +50,10 @@ public class GameScreen {
public GameScreen(Dungeon d, float volume) {
//CONTROLS
ctr = new Texture("controls.png");
controls = new Sprite(ctr);
controls.setX(-400f);
controls.setY(0);
ctr = new Texture("controls.png");
controls = new Sprite(ctr);
controls.setX(-400f);
controls.setY(0);
//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.glClear(GL20.GL_COLOR_BUFFER_BIT);
@ -107,10 +105,7 @@ public class GameScreen {
player.setX(p.getxPos());
player.setY(p.getyPos());
int xPosRoom = posRoom[0];
int yPosRoom = posRoom[1];
tm = getM().getMaps()[level][xPosRoom][yPosRoom];
tm = getM().getMaps()[level][roomPosX][roomPosY];
if(tm == null){
System.out.println("Dein scheiß geht net");

Loading…
Cancel
Save