diff --git a/core/assets/sprites/selected.png b/core/assets/sprites/selected.png new file mode 100644 index 0000000..633c185 Binary files /dev/null and b/core/assets/sprites/selected.png differ diff --git a/core/assets/tilesets/haha.png b/core/assets/tilesets/haha.png deleted file mode 100644 index 08b6fef..0000000 Binary files a/core/assets/tilesets/haha.png and /dev/null differ diff --git a/core/assets/tilesets/tileset_floor_1.png b/core/assets/tilesets/tileset_floor_1.png index ab0fabe..08b6fef 100644 Binary files a/core/assets/tilesets/tileset_floor_1.png and b/core/assets/tilesets/tileset_floor_1.png differ diff --git a/core/assets/tilesets/tileset_floor_2.png b/core/assets/tilesets/tileset_floor_2.png new file mode 100644 index 0000000..d059546 Binary files /dev/null and b/core/assets/tilesets/tileset_floor_2.png differ diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 3ac4def..089c14b 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -61,6 +61,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ Timer entityMovement; + HudContainer hc; + @Override public void create(){ @@ -94,6 +96,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ Gdx.input.setInputProcessor(this); + entityMovement = new Timer(); entityMovement.scheduleTask(new Timer.Task() { @@ -139,6 +142,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ // Render methode zum rendern der einzelnen Sprites wird aufgerufen m.render(batch, d.getPlayer(), d.getCurrentEntities(), arrows, tileX, tileY, level, roomPosX, roomPosY); + hc.updateInventory(batch, d.getPlayer()); } } } @@ -482,7 +486,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.cleanUp(); v = null; m = new GameScreen(d, volume); - m.startLoadingScreen(); return true; } diff --git a/core/src/com/dungeoncrawler/model/Inventory.java b/core/src/com/dungeoncrawler/model/Inventory.java index baf3206..5235ec0 100644 --- a/core/src/com/dungeoncrawler/model/Inventory.java +++ b/core/src/com/dungeoncrawler/model/Inventory.java @@ -5,6 +5,7 @@ public class Inventory { Item items[][]; Item equipped[]; + int selected; int width; int height; diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index b890e6f..4221096 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -56,16 +56,13 @@ public class GameScreen { TextureRegion[][] roomChangeTextureRegion; int roomChangeRow; + HudContainer hc; + // Sound public Music music; //Inventory TEST - Texture HudTexture; - Sprite HudSprite; - Texture[] InventoryItemTextures; - Sprite[] InventoryItemSprites; - float[] invXPos; - float[] invYPos; + public GameScreen(Dungeon d, float volume) { @@ -103,7 +100,7 @@ public class GameScreen { camera = new OrthographicCamera(1, h/w); camera.translate(175f, 215f); - MapGenerator mg = new MapGenerator(new Texture(Gdx.files.internal("tilesets/haha.png"))); + MapGenerator mg = new MapGenerator(new Texture(Gdx.files.internal("tilesets/tileset_floor_1.png"))); m = mg.generateMap(d); mg.ichWillSpielen(m.getMaps()); @@ -128,34 +125,8 @@ public class GameScreen { },0, 0.1f); //Inventory TEST - HudTexture = new Texture("sprites/hud.png"); - HudSprite = new Sprite(HudTexture); - HudSprite.setX(-HudSprite.getWidth()); - HudSprite.setY(20f); - InventoryItemTextures = new Texture[8]; - InventoryItemSprites = new Sprite[8]; - invXPos = new float[8]; - invYPos = new float[8]; - //Equipped 1 - invXPos[0] = HudSprite.getX() + 37f; - invYPos[0] = HudSprite.getY() + 112f; - //Equipped 2 - invXPos[1] = HudSprite.getX() + 85f; - invYPos[1] = HudSprite.getY() + 112f; - - invXPos[2] = HudSprite.getX() + 10f; - invYPos[2] = HudSprite.getY() + 61f; - invXPos[3] = HudSprite.getX() + 61f; - invYPos[3] = HudSprite.getY() + 61f; - invXPos[4] = HudSprite.getX() + 112f; - invYPos[4] = HudSprite.getY() + 61f; - - invXPos[5] = HudSprite.getX() + 10f; - invYPos[5] = HudSprite.getY() + 10f; - invXPos[6] = HudSprite.getX() + 61f; - invYPos[6] = HudSprite.getY() + 10f; - invXPos[7] = HudSprite.getX() + 112f; - invYPos[7] = HudSprite.getY() + 10f; + + hc = new HudContainer(); @@ -250,31 +221,17 @@ public class GameScreen { } } - InventoryItemSprites = new Sprite[8]; - - Item[][] items = p.getInv().getItem(); - for(int x = 0; x < items.length; x++){ - for(int y = 0; y < items[0].length; y++){ - if(items[x][y] != null){ - addItem(items[x][y]); - } - } - } //BATCH batch.begin(); - HudSprite.draw(batch); + //DRAWING LOADING SCREEN IF LOADING //DRAWING INVENTORY - for(int i = 0; i < InventoryItemSprites.length ;i++){ - if(InventoryItemSprites[i] != null){ - InventoryItemSprites[i].draw(batch); - } - } + for(AnimatedObject object : objects){ object.getSprite().draw(batch); @@ -361,6 +318,7 @@ public class GameScreen { if(roomLoading == true){ roomChangeSprite.draw(batch); } + batch.end(); } @@ -468,46 +426,7 @@ public class GameScreen { */ - public void addItem(Item item){ - switch(item.getId()){ - case 0: - for(int i = 2; i < InventoryItemSprites.length; i++){ - if(InventoryItemSprites[i] == null){ - //InventoryItemTextures[i] = new Texture("sprites/itemTest.png"); - InventoryItemTextures[i] = new Texture("sprites/key.png"); - InventoryItemSprites[i] = new Sprite(InventoryItemTextures[i]); - InventoryItemSprites[i].setX(invXPos[i]); - InventoryItemSprites[i].setY(invYPos[i]); - break; - } - } - break; - case 1: - for(int i = 2; i < InventoryItemSprites.length; i++){ - if(InventoryItemSprites[i] == null){ - //InventoryItemTextures[i] = new Texture("sprites/itemTest.png"); - InventoryItemTextures[i] = new Texture("sprites/healingPotion.png"); - InventoryItemSprites[i] = new Sprite(InventoryItemTextures[i]); - InventoryItemSprites[i].setX(invXPos[i]); - InventoryItemSprites[i].setY(invYPos[i]); - break; - } - } - break; - case 2: - for(int i = 2; i < InventoryItemSprites.length; i++){ - if(InventoryItemSprites[i] == null){ - //InventoryItemTextures[i] = new Texture("sprites/itemTest.png"); - InventoryItemTextures[i] = new Texture("sprites/sword.png"); - InventoryItemSprites[i] = new Sprite(InventoryItemTextures[i]); - InventoryItemSprites[i].setX(invXPos[i]); - InventoryItemSprites[i].setY(invYPos[i]); - break; - } - } - break; - } - } + /* public ItemContainer playerPickUp(ItemContainer[] items, Player p){ for(int i = 0; i < items.length; i++){ diff --git a/core/src/com/dungeoncrawler/view/HudContainer.java b/core/src/com/dungeoncrawler/view/HudContainer.java new file mode 100644 index 0000000..dd089ee --- /dev/null +++ b/core/src/com/dungeoncrawler/view/HudContainer.java @@ -0,0 +1,122 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.dungeoncrawler.view; + +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.Sprite; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.dungeoncrawler.model.Item; +import com.dungeoncrawler.model.entities.Player; + +/** + * + * @author bfz + */ +public class HudContainer { + Texture HudTexture; + Sprite HudSprite; + Texture[] InventoryItemTextures; + Sprite[] InventoryItemSprites; + float[] invXPos; + float[] invYPos; + + public HudContainer(){ + + HudTexture = new Texture("sprites/hud.png"); + HudSprite = new Sprite(HudTexture); + HudSprite.setX(-HudSprite.getWidth()); + HudSprite.setY(20f); + InventoryItemTextures = new Texture[8]; + InventoryItemSprites = new Sprite[8]; + invXPos = new float[8]; + invYPos = new float[8]; + //Equipped 1 + invXPos[0] = HudSprite.getX() + 37f; + invYPos[0] = HudSprite.getY() + 112f; + //Equipped 2 + invXPos[1] = HudSprite.getX() + 85f; + invYPos[1] = HudSprite.getY() + 112f; + + invXPos[2] = HudSprite.getX() + 10f; + invYPos[2] = HudSprite.getY() + 61f; + invXPos[3] = HudSprite.getX() + 61f; + invYPos[3] = HudSprite.getY() + 61f; + invXPos[4] = HudSprite.getX() + 112f; + invYPos[4] = HudSprite.getY() + 61f; + + invXPos[5] = HudSprite.getX() + 10f; + invYPos[5] = HudSprite.getY() + 10f; + invXPos[6] = HudSprite.getX() + 61f; + invYPos[6] = HudSprite.getY() + 10f; + invXPos[7] = HudSprite.getX() + 112f; + invYPos[7] = HudSprite.getY() + 10f; + + } + + public void updateInventory(SpriteBatch batch, Player p){ + InventoryItemSprites = new Sprite[8]; + + Item[][] items = p.getInv().getItem(); + + for(int x = 0; x < items.length; x++){ + for(int y = 0; y < items[0].length; y++){ + if(items[x][y] != null){ + addItem(items[x][y]); + } + } + } + batch.begin(); + HudSprite.draw(batch); + for(int i = 0; i < InventoryItemSprites.length ;i++){ + if(InventoryItemSprites[i] != null){ + InventoryItemSprites[i].draw(batch); + } + } + batch.end(); + + } + + public void addItem(Item item){ + switch(item.getId()){ + case 0: + for(int i = 2; i < InventoryItemSprites.length; i++){ + if(InventoryItemSprites[i] == null){ + //InventoryItemTextures[i] = new Texture("sprites/itemTest.png"); + InventoryItemTextures[i] = new Texture("sprites/key.png"); + InventoryItemSprites[i] = new Sprite(InventoryItemTextures[i]); + InventoryItemSprites[i].setX(invXPos[i]); + InventoryItemSprites[i].setY(invYPos[i]); + break; + } + } + break; + case 1: + for(int i = 2; i < InventoryItemSprites.length; i++){ + if(InventoryItemSprites[i] == null){ + //InventoryItemTextures[i] = new Texture("sprites/itemTest.png"); + InventoryItemTextures[i] = new Texture("sprites/healingPotion.png"); + InventoryItemSprites[i] = new Sprite(InventoryItemTextures[i]); + InventoryItemSprites[i].setX(invXPos[i]); + InventoryItemSprites[i].setY(invYPos[i]); + break; + } + } + break; + case 2: + for(int i = 2; i < InventoryItemSprites.length; i++){ + if(InventoryItemSprites[i] == null){ + //InventoryItemTextures[i] = new Texture("sprites/itemTest.png"); + InventoryItemTextures[i] = new Texture("sprites/sword.png"); + InventoryItemSprites[i] = new Sprite(InventoryItemTextures[i]); + InventoryItemSprites[i].setX(invXPos[i]); + InventoryItemSprites[i].setY(invYPos[i]); + break; + } + } + break; + } + } +} diff --git a/core/src/com/dungeoncrawler/view/MainMenu.java b/core/src/com/dungeoncrawler/view/MainMenu.java index 7a7df68..8c3a216 100644 --- a/core/src/com/dungeoncrawler/view/MainMenu.java +++ b/core/src/com/dungeoncrawler/view/MainMenu.java @@ -57,12 +57,12 @@ public class MainMenu{ backgroundSprite.setX(0); backgroundSprite.setY(0); - /* + camera = new OrthographicCamera(1, h/w); camera.translate(backgroundSprite.getWidth()/2, backgroundSprite.getHeight()/2); camera.zoom = 1150f; camera.update(); - */ + Pixmap pm = new Pixmap(Gdx.files.internal("sprites/cursor.png")); Gdx.graphics.setCursor(Gdx.graphics.newCursor(pm, 0, 0)); pm.dispose(); @@ -86,7 +86,7 @@ public class MainMenu{ Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); - //batch.setProjectionMatrix(camera.combined); + batch.setProjectionMatrix(camera.combined); backgroundSprite.draw(batch); startButtonSprite.draw(batch); quitButtonSprite.draw(batch); @@ -95,6 +95,7 @@ public class MainMenu{ public int click(int x, int y){ // prueft ob cursor mit button (START) ueberlappt + Rectangle r = new Rectangle(); r.set(x, h-y, 1, 1); if(Intersector.overlaps(r, startButtonSprite.getBoundingRectangle())){ @@ -104,6 +105,7 @@ public class MainMenu{ return 1; } return -1; + } public void cleanUp(){ diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index 8967787..092dbe3 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -351,4 +351,6 @@ public class MapGenerator { } } } + + } diff --git a/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java b/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java index bbefeb2..581ac5d 100644 --- a/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java +++ b/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java @@ -11,9 +11,9 @@ public class DesktopLauncher { config.width = 1600; config.height = 900; - config.title = "The Restless Caverns"; + config.title = "The Restless Caverns - Der beste Dungeon Crawler ALLER ZEITEN"; config.resizable = true; - + //config.addIcon("logo.png", Files.FileType.Internale); new LwjglApplication(new Controller(), config); }