From b0572501a435b2a68df2c68f7e07e9ce0e8460f1 Mon Sep 17 00:00:00 2001 From: GammelJan Date: Wed, 6 May 2020 21:14:21 +0200 Subject: [PATCH] faiwfioaeshgioewhj --- .../dungeoncrawler/control/Controller.java | 7 ++++- core/src/com/dungeoncrawler/model/Room.java | 4 +-- .../dungeoncrawler/view/AnimatedObject.java | 4 +++ .../com/dungeoncrawler/view/GameScreen.java | 2 +- .../com/dungeoncrawler/view/MapContainer.java | 27 ++++++++++++++++++- 5 files changed, 39 insertions(+), 5 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index a8d6de5..9f6398d 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -430,6 +430,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ if(Intersector.overlaps(gs.getPlayer().getCollisionSprite(), tempSprites.get(i).getSprite().getBoundingRectangle())){ garbageCollector.add(tempItems.get(i)); + tempItems.remove(i); tempSprites.remove(i); } @@ -570,7 +571,11 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ if(keycode == Input.Keys.Q){ if(gs != null && gs.getIsLoading() == false){ - d.getPlayer().getInv().dropItem(); + if(d.getPlayer().getInv().getItem(d.getPlayer().getInv().getSelected()) != null){ + d.getCurrentRoom().spawnItem((int)d.getPlayer().getxPos(), (int)d.getPlayer().getyPos(), d.getPlayer().getInv().getItem(d.getPlayer().getInv().getSelected())); + gs.getM().getMaps()[level][roomPosX][roomPosY].addItem(48, 48,(int)d.getPlayer().getxPos(), (int)d.getPlayer().getyPos(), d.getPlayer().getInv().getItem(d.getPlayer().getInv().getSelected())); + d.getPlayer().getInv().dropItem(); + } } } if(keycode == Input.Keys.ESCAPE){ diff --git a/core/src/com/dungeoncrawler/model/Room.java b/core/src/com/dungeoncrawler/model/Room.java index ad88b79..430aa0c 100644 --- a/core/src/com/dungeoncrawler/model/Room.java +++ b/core/src/com/dungeoncrawler/model/Room.java @@ -28,8 +28,8 @@ public class Room { enemy.setyPos(yPos); } - public void spawnItem(int xPos, int yPos){ - // TODO: Zu Implementieren + public void spawnItem(int xPos, int yPos, Item i){ + items.add(new ItemContainer(xPos, yPos, i)); } /** diff --git a/core/src/com/dungeoncrawler/view/AnimatedObject.java b/core/src/com/dungeoncrawler/view/AnimatedObject.java index 6ae8fe9..bb66ca8 100644 --- a/core/src/com/dungeoncrawler/view/AnimatedObject.java +++ b/core/src/com/dungeoncrawler/view/AnimatedObject.java @@ -53,6 +53,10 @@ public class AnimatedObject { public void setSprite(Sprite sprite) { this.sprite = sprite; } + + public void setSpritePosition(int xPos, int yPos){ + sprite.setPosition(xPos, yPos); + } /** * @return the texture diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index a02c955..cfb12a6 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -184,7 +184,7 @@ public class GameScreen { } tm = getM().getMaps()[level][roomPosX][roomPosY].getMap(); - objects = getM().getMaps()[level][roomPosX][roomPosY].getObjects(); + objects = getM().getMaps()[level][roomPosX][roomPosY].getObjects(); mapItems = getM().getMaps()[level][roomPosX][roomPosY].getMapItems(); if(tm == null){ diff --git a/core/src/com/dungeoncrawler/view/MapContainer.java b/core/src/com/dungeoncrawler/view/MapContainer.java index df21552..17ea922 100644 --- a/core/src/com/dungeoncrawler/view/MapContainer.java +++ b/core/src/com/dungeoncrawler/view/MapContainer.java @@ -5,7 +5,9 @@ */ package com.dungeoncrawler.view; +import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.maps.tiled.TiledMap; +import com.dungeoncrawler.model.Item; import java.util.ArrayList; /** @@ -24,6 +26,28 @@ public class MapContainer { this.mapItems = new ArrayList<>(); this.enemies = new EntitySprite[15]; } + + + public void addItem(int width, int height, int xPos, int yPos, Item i){ + switch(i.getId()){ + case 0: // key + AnimatedObject ao1 = new AnimatedObject(new Texture("sprites/key.png"), width, height); + mapItems.add(ao1); + ao1.setSpritePosition(xPos, yPos); + break; + case 1: // potion + AnimatedObject ao2 = new AnimatedObject(new Texture("sprites/potion.png"), width, height); + mapItems.add(ao2); + ao2.setSpritePosition(xPos, yPos); + break; + case 2: // amulet + AnimatedObject ao3 = new AnimatedObject(new Texture("sprites/amulet.png"), width, height); + mapItems.add(ao3); + ao3.setSpritePosition(xPos, yPos); + break; + + } + } /** * @return the map @@ -52,13 +76,14 @@ public class MapContainer { public void setObjects(ArrayList objects) { this.objects = objects; } - + /** * @return the mapItems */ public ArrayList getMapItems() { return mapItems; } + /** * @param mapItems the mapItems to set