master
Jonathan Hager 6 years ago
commit dfb1b048fe

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1002 B

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -10,6 +10,11 @@ import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input; import com.badlogic.gdx.Input;
import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.maps.MapLayers;
import com.badlogic.gdx.maps.MapObjects;
import com.badlogic.gdx.maps.objects.RectangleMapObject;
import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle;
import com.dungeoncrawler.view.*; import com.dungeoncrawler.view.*;
import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.Dungeon;
import com.dungeoncrawler.model.DungeonGenerator; import com.dungeoncrawler.model.DungeonGenerator;
@ -90,6 +95,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
@Override @Override
public void render(){ public void render(){
//PASSIERT IN MAINMENU //PASSIERT IN MAINMENU
if(v != null){ if(v != null){
v.render(batch, d.getPlayer() , e); v.render(batch, d.getPlayer() , e);
@ -97,17 +103,15 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
//PASSIERT IN GAMESCREEN //PASSIERT IN GAMESCREEN
if(m != null){ if(m != null){
//ENTITIES
//d.getPlayer().setxPos(m.getPlayerSpriteX());
//d.getPlayer().setyPos(m.getPlayerSpriteY());
if(v == null){ if(v == null){
// Position des Players, etc. werden aktualisiert // Position des Players, etc. werden aktualisiert
updateObjects(); updateObjects(level, posRoom);
// Raum, in dem sich der Player jetzt befindet, wird aktualisiert // Raum, in dem sich der Player jetzt befindet, wird aktualisiert
updateRoom(); 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(), e, arrows, tile, level, posRoom);
} }
@ -120,8 +124,34 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
batch.dispose(); batch.dispose();
} }
public void updateObjects(){ public void updateObjects(int level, int[] posRoom){
MapLayers layers = m.getM().getMaps()[level][posRoom[0]][posRoom[1]].getLayers();
MapObjects objects = layers.get(0).getObjects();
System.out.println(objects.getCount());
float x = d.getPlayer().getxPos();
float y = d.getPlayer().getyPos();
d.getPlayer().update(); d.getPlayer().update();
m.setPlayerSpriteX(d.getPlayer().getxPos());
m.setPlayerSpriteY(d.getPlayer().getyPos());
System.out.println("Temp: " + x + " " + y);
System.out.println("Player: " + d.getPlayer().getxPos() + " " + d.getPlayer().getyPos());
for(RectangleMapObject rectangleObject : objects.getByType(RectangleMapObject.class)){
Rectangle rectangle = rectangleObject.getRectangle();
if(Intersector.overlaps(rectangle, m.getPlayer().getBoundingRectangle())){
d.getPlayer().setxPos(x);
d.getPlayer().setyPos(y);
System.out.println("Es lädt, es laedt, ich will nicht, dass es laedt, wenn es laedt, muss man immer so lange warten!!!!!");
}
}
} }
public void updateRoom(){ public void updateRoom(){

@ -41,6 +41,10 @@ public abstract class Entity {
xPos += movementX; xPos += movementX;
yPos += movementY; yPos += movementY;
} }
public void downgrade(){
xPos -= movementX;
yPos -= movementY;
}
public void die(){ public void die(){
} }

@ -14,7 +14,7 @@ import com.dungeoncrawler.model.Entity;
public class Player extends Entity { public class Player extends Entity {
public Player() { public Player() {
super(0, 0, 1); super(200, 200, 1);
this.maxhp = 5*lvl; this.maxhp = 5*lvl;
this.hp = this.maxhp; this.hp = this.maxhp;

@ -33,7 +33,7 @@ public class GameScreen {
Sprite[] arrowSprites; Sprite[] arrowSprites;
//MAP //MAP
Map m; private Map m;
TiledMapRenderer tmr; TiledMapRenderer tmr;
TiledMap tm; TiledMap tm;
OrthographicCamera camera; OrthographicCamera camera;
@ -41,6 +41,7 @@ public class GameScreen {
public GameScreen(Dungeon d) { public GameScreen(Dungeon d) {
//PLAYER //PLAYER
p = new Texture("player.png"); p = new Texture("player.png");
regions = TextureRegion.split(p, 48, 48); regions = TextureRegion.split(p, 48, 48);
player = new Sprite(regions[0][2]); player = new Sprite(regions[0][2]);
@ -84,7 +85,7 @@ public class GameScreen {
int xPosRoom = posRoom[0]; int xPosRoom = posRoom[0];
int yPosRoom = posRoom[1]; int yPosRoom = posRoom[1];
tm = m.getMaps()[level][xPosRoom][yPosRoom]; 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");
@ -208,6 +209,9 @@ public class GameScreen {
public float getPlayerSpriteY(){ public float getPlayerSpriteY(){
return player.getY(); return player.getY();
} }
public Sprite getPlayer(){
return player;
}
public float getEntitySpriteX(int i){ public float getEntitySpriteX(int i){
return entitySprites[i].getX(); return entitySprites[i].getX();
@ -230,5 +234,12 @@ public class GameScreen {
public void setEntitySpriteY(int i,float y){ public void setEntitySpriteY(int i,float y){
entitySprites[i].setY(y); entitySprites[i].setY(y);
} }
/**
* @return the m
*/
public Map getM() {
return m;
}
} }

@ -7,7 +7,9 @@ package com.dungeoncrawler.view;
import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.maps.MapLayer;
import com.badlogic.gdx.maps.MapLayers; import com.badlogic.gdx.maps.MapLayers;
import com.badlogic.gdx.maps.objects.RectangleMapObject;
import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer;
import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile; import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile;
@ -113,7 +115,8 @@ public class MapGenerator {
// dynamicLayer: Beinhaltet alle Sprites, die ihre Postition ändern können (Entities, Items) // dynamicLayer: Beinhaltet alle Sprites, die ihre Postition ändern können (Entities, Items)
// staticLayer: Beinhaltet alle Tiles und alles statische, was sich im Raum nicht ändern kann // staticLayer: Beinhaltet alle Tiles und alles statische, was sich im Raum nicht ändern kann
MapLayers layers = tempRoom.getLayers(); MapLayers layers = tempRoom.getLayers();
TiledMapTileLayer collisionLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48);
MapLayer collisionLayer = new MapLayer();
TiledMapTileLayer dynamicLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48); TiledMapTileLayer dynamicLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48);
TiledMapTileLayer staticLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48); TiledMapTileLayer staticLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48);
@ -135,6 +138,20 @@ public class MapGenerator {
} }
} }
RectangleMapObject bottom = new RectangleMapObject(0, 0, mapDimensionX*48, 48);
collisionLayer.getObjects().add(bottom);
RectangleMapObject left = new RectangleMapObject(0, 0, 48, mapDimensionY*48);
collisionLayer.getObjects().add(left);
RectangleMapObject top = new RectangleMapObject(0, mapDimensionY*48 - 48, mapDimensionX*48, 48);
collisionLayer.getObjects().add(top);
RectangleMapObject right = new RectangleMapObject(mapDimensionX*48 - 48, 0, 48, mapDimensionY*48);
collisionLayer.getObjects().add(right);
collisionLayer.setVisible(false);
layers.add(collisionLayer); layers.add(collisionLayer);
layers.add(dynamicLayer); layers.add(dynamicLayer);
layers.add(staticLayer); layers.add(staticLayer);

Loading…
Cancel
Save