From 12e675211893da83270b5e64fd1882eb39245648 Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Mon, 13 Apr 2020 23:11:58 +0200 Subject: [PATCH 1/5] =?UTF-8?q?Es=20st=C3=BCrzt=20zumindest=20net=20ab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dungeoncrawler/control/Controller.java | 21 ++++++++++++++++--- .../com/dungeoncrawler/view/GameScreen.java | 14 +++++++++++-- .../com/dungeoncrawler/view/MapGenerator.java | 11 +++++++++- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 099a697..f12adb1 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -10,6 +10,11 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.InputProcessor; 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.model.Dungeon; import com.dungeoncrawler.model.DungeonGenerator; @@ -114,7 +119,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ if(v == null){ // Position des Players, etc. werden aktualisiert - updateObjects(); + updateObjects(level, posRoom); // Raum, in dem sich der Player jetzt befindet, wird aktualisiert updateRoom(); @@ -131,8 +136,18 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ batch.dispose(); } - public void updateObjects(){ - d.getPlayer().update(); + 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()); + + RectangleMapObject rectangleObject = objects.getByType(RectangleMapObject.class).get(0); + + Rectangle rectangle = rectangleObject.getRectangle(); + if(Intersector.overlaps(rectangle, m.getPlayer().getBoundingRectangle())){ + d.getPlayer().update(); + } } public void updateRoom(){ diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index eebff22..1bb9fde 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -27,7 +27,7 @@ public class GameScreen { Texture archerTexture; //MAP - Map m; + private Map m; TiledMapRenderer tmr; TiledMap tm; OrthographicCamera camera; @@ -75,7 +75,7 @@ public class GameScreen { int xPosRoom = posRoom[0]; int yPosRoom = posRoom[1]; - tm = m.getMaps()[level][xPosRoom][yPosRoom]; + tm = getM().getMaps()[level][xPosRoom][yPosRoom]; if(tm == null){ System.out.println("Dein scheiß geht net"); @@ -163,6 +163,9 @@ public class GameScreen { public float getPlayerSpriteY(){ return player.getY(); } + public Sprite getPlayer(){ + return player; + } public float getEntitySpriteX(int i){ return entitySprites[i].getX(); @@ -185,5 +188,12 @@ public class GameScreen { public void setEntitySpriteY(int i,float y){ entitySprites[i].setY(y); } + + /** + * @return the m + */ + public Map getM() { + return m; + } } diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index a208c36..e0ce3e6 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -7,7 +7,10 @@ package com.dungeoncrawler.view; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.maps.MapLayer; import com.badlogic.gdx.maps.MapLayers; +import com.badlogic.gdx.maps.MapObjects; +import com.badlogic.gdx.maps.objects.RectangleMapObject; import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile; @@ -113,7 +116,8 @@ public class MapGenerator { // 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 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 staticLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48); @@ -135,6 +139,11 @@ public class MapGenerator { } } + RectangleMapObject collision = new RectangleMapObject(48, 48, roomDimensionX, roomDimensionY); + collisionLayer.getObjects().add(collision); + + collisionLayer.setVisible(false); + layers.add(collisionLayer); layers.add(dynamicLayer); layers.add(staticLayer); From b16300f69868804c237310ed5e408e74d491351c Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Mon, 13 Apr 2020 23:30:57 +0200 Subject: [PATCH 2/5] Naja, net ganz so wie gedacht, aber is ein Feature --- core/src/com/dungeoncrawler/control/Controller.java | 10 ++++++++-- core/src/com/dungeoncrawler/view/MapGenerator.java | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index f12adb1..efe2720 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -145,8 +145,14 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ RectangleMapObject rectangleObject = objects.getByType(RectangleMapObject.class).get(0); Rectangle rectangle = rectangleObject.getRectangle(); - if(Intersector.overlaps(rectangle, m.getPlayer().getBoundingRectangle())){ - d.getPlayer().update(); + + float x = d.getPlayer().getxPos(); + float y = d.getPlayer().getyPos(); + + d.getPlayer().update(); + if(!Intersector.overlaps(rectangle, m.getPlayer().getBoundingRectangle())){ + d.getPlayer().setxPos(x); + d.getPlayer().setyPos(y); } } diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index e0ce3e6..d046fcc 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -139,7 +139,7 @@ public class MapGenerator { } } - RectangleMapObject collision = new RectangleMapObject(48, 48, roomDimensionX, roomDimensionY); + RectangleMapObject collision = new RectangleMapObject(48, 48, roomDimensionX*48, roomDimensionY*48); collisionLayer.getObjects().add(collision); collisionLayer.setVisible(false); From 7174f544e9001ef1c719bf6dbe74a66d877ef3fe Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Tue, 14 Apr 2020 11:18:26 +0200 Subject: [PATCH 3/5] Ich verstehs net --- core/assets/Player.png | Bin 1002 -> 1502 bytes .../dungeoncrawler/control/Controller.java | 19 +++++++++++------- .../com/dungeoncrawler/view/GameScreen.java | 2 +- .../com/dungeoncrawler/view/MapGenerator.java | 14 ++++++++++--- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/core/assets/Player.png b/core/assets/Player.png index 74b08ff70224acd36b52cf2c8124a7e9bf500e95..543bef7894432625ed514f832c1b79e8289b4247 100644 GIT binary patch delta 1444 zcmV;V1zY;+2i^;4iBL{Q4GJ0x0000DNk~Le0002M0000m2nGNE07p)B9smFVjA=td zP)A8kP#|J;X>4>YX>K5MQb$4n04R}tkv&MmKpe$i(@Kj}9oj)eFhg~+AS&W0RV;#q z(pG5I!Q|2}Xws0hkzp!-%?eXZ-vpp)H6s;|iP_w$=zoO|{Rm(LA&HrKBE6V_>-f5d zhp%^0p5=b-&(WvkO$K;G;yI=pHR288na!Hcd7n7UN|Hi+PCRbV1&JTIE<60jxoES% zGs8wEHBTHS7K>dhcQGp&D)BUNL{T-$7qSj3oVPful{#zRlfN*3nAcX)T&FpVIF^t= z5+Y>OQAPzdL}}GXF_EJEn2UeN_9w|DldB9yjs;YqLbCnffAG6ovoJO3Bn4wY&x>V! zi~{~$pw+Of?_xWGL)V-tzbZxznmal#cMmCOCTwu%A5#GfGB-CF@@l)IZkiCkk=Y_R(bzV<+43V%jUdendaNR2Sn4q#dJ zTPCkHFyqng2vrA|y}79=sJ6gTyg$?0o1w~$dpY8ySxZ=wo?FfI_POvuh2bgD(pC7PL6u-7_kkH#< zM)i+KxB!*n=g{H;+SNY?mm|0X{KFOB2Gox5p95%C{|L1Ua4LR|*)CvF{c}(`!rMB) z5f%S&3uZqbfo0SYUVQ)y>c0g$a4m(ucLdq%66v)hf2C6!z4dVLHV&Yr@F~%Fjz61T zVO-AF)tvfAE+H(nfod-NQUO!^Qe_&KcToQvwfZ<&E&dvs3m=Osem^xws4A#6tQCH) ys8a{P7XDGbdWDj--Vd_}uvYjjxZ=~3I>KLJMN)!3vVu?m0000;aYqS<@zZsvW6G z4CUFU)S%$hp{QgS?4K%L{6QxE`-hKT_0DbHbN;U-+muBo8RmP~94|SnbWdU4%`GM8 zejf=8n<(R+ui96dPj|Oxu?@aDm6}WFg zdE~=AMy!j|0S7j-+s={ zPrgB>bZZT>j0{t9>Z!Qz73C|oZ?8XJ^6NLFGfUBw=YRJ{0RxyV$=lt9ArJ(6l`0+r zMK}vQB8wRq^pruEv0|xx8BmbD#M9T6{Rs;@hqdt%^-Z@YpJP<7XFTNT;uunK>+Rix zy@wolSOc0aIlfvH^=c8Dg`$8Hhf(6AjrVu!OYiw6&tIKjRZSxDa-mhSls61L`TOb;+yN%&Q5QCxu%a4a# z6E-Hsa0|?e&tbTEzvAlU3t|V3Gps0yU-#=~gFwLY?TimXS{_L^Z24X%$dK??oFSu# zg@MD3k%5C@P8kP-149CL05^!|z`(%7P#)iAn8~z(5y%u^XkcJqVNhVG2PRagG*ql5 z{4aMhD?%{9=_x-GE5i*?lICEzQ+w43WL6F%$PkOS0t_5XUj-OaGKv%vm>o1Y8k@Gx z_`9<*_Yc>73EdAl41U`e9bU-BAKbbny*4@hRllk8+*-RFhPM4jJTsndXXJ=(IHoAE zF?^fEpEJfv3_SIx8gKkMa^6b)A9uo!*>U=p5+Xk5GQ2U7sQwnX{@{5FZKeYs_|0{y r=Y6^P%#}gn--W}%g=^277@Kd1`1pTHe85*=G&6X*`njxgN@xNAva@yp diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index efe2720..ed10cf4 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -142,17 +142,22 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ MapObjects objects = layers.get(0).getObjects(); System.out.println(objects.getCount()); - RectangleMapObject rectangleObject = objects.getByType(RectangleMapObject.class).get(0); - - Rectangle rectangle = rectangleObject.getRectangle(); - float x = d.getPlayer().getxPos(); float y = d.getPlayer().getyPos(); d.getPlayer().update(); - if(!Intersector.overlaps(rectangle, m.getPlayer().getBoundingRectangle())){ - d.getPlayer().setxPos(x); - d.getPlayer().setyPos(y); + + 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!!!!!"); + } } } diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index 1bb9fde..9b81505 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -36,7 +36,7 @@ public class GameScreen { //PLAYER p = new Texture("Player.png"); - regions = TextureRegion.split(p, 64, 64); + regions = TextureRegion.split(p, 48, 48); player = new Sprite(regions[0][2]); player.setX(200); player.setY(200); diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index d046fcc..48703d0 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -9,7 +9,6 @@ import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.maps.MapLayer; import com.badlogic.gdx.maps.MapLayers; -import com.badlogic.gdx.maps.MapObjects; import com.badlogic.gdx.maps.objects.RectangleMapObject; import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; @@ -139,8 +138,17 @@ public class MapGenerator { } } - RectangleMapObject collision = new RectangleMapObject(48, 48, roomDimensionX*48, roomDimensionY*48); - collisionLayer.getObjects().add(collision); + 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); From 472741256295c13fb96a0d3e1ebad53199ddbb4d Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Tue, 14 Apr 2020 11:29:01 +0200 Subject: [PATCH 4/5] Temp --- core/src/com/dungeoncrawler/control/Controller.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index ed10cf4..a2691b8 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -142,8 +142,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ MapObjects objects = layers.get(0).getObjects(); System.out.println(objects.getCount()); - float x = d.getPlayer().getxPos(); - float y = d.getPlayer().getyPos(); + float x = d.getPlayer().getxPos() - 3; + float y = d.getPlayer().getyPos() - 3; d.getPlayer().update(); From ccc33322e946fac7062848e0d7aaceebf8fddd4d Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Tue, 14 Apr 2020 12:20:56 +0200 Subject: [PATCH 5/5] Ich bin Mr. 2000547 --- .../src/com/dungeoncrawler/control/Controller.java | 14 ++++++++++---- core/src/com/dungeoncrawler/model/Entity.java | 4 ++++ .../com/dungeoncrawler/model/entities/Player.java | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index a2691b8..be94cdd 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -106,6 +106,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void render(){ + //PASSIERT IN MAINMENU if(v != null){ v.render(batch, d.getPlayer() , e); @@ -114,8 +115,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ //PASSIERT IN GAMESCREEN (view) if(m != null){ //ENTITIES - d.getPlayer().setxPos(m.getPlayerSpriteX()); - d.getPlayer().setyPos(m.getPlayerSpriteY()); + if(v == null){ // Position des Players, etc. werden aktualisiert @@ -124,6 +124,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ // Raum, in dem sich der Player jetzt befindet, wird aktualisiert updateRoom(); + // Render methode zum rendern der einzelnen Sprites wird aufgerufen m.render(batch, d.getPlayer(), e, tile, level, posRoom); } @@ -142,11 +143,14 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ MapObjects objects = layers.get(0).getObjects(); System.out.println(objects.getCount()); - float x = d.getPlayer().getxPos() - 3; - float y = d.getPlayer().getyPos() - 3; + float x = d.getPlayer().getxPos(); + float y = d.getPlayer().getyPos(); 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()); @@ -154,8 +158,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ 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!!!!!"); } } diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index de6eefc..e7480a4 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -30,6 +30,10 @@ public abstract class Entity { xPos += movementX; yPos += movementY; } + public void downgrade(){ + xPos -= movementX; + yPos -= movementY; + } public void die(){ } diff --git a/core/src/com/dungeoncrawler/model/entities/Player.java b/core/src/com/dungeoncrawler/model/entities/Player.java index c355e42..6292850 100644 --- a/core/src/com/dungeoncrawler/model/entities/Player.java +++ b/core/src/com/dungeoncrawler/model/entities/Player.java @@ -14,7 +14,7 @@ import com.dungeoncrawler.model.Entity; public class Player extends Entity { public Player() { - super(0, 0, 1); + super(200, 200, 1); this.maxhp = 5*lvl; this.hp = this.maxhp;