diff --git a/core/assets/Archer-64.png b/core/assets/Archer-64.png new file mode 100644 index 0000000..26ecf00 Binary files /dev/null and b/core/assets/Archer-64.png differ diff --git a/core/assets/Archer.png b/core/assets/Archer.png new file mode 100644 index 0000000..a2a0506 Binary files /dev/null and b/core/assets/Archer.png differ diff --git a/core/assets/animplay.png b/core/assets/animplay.png new file mode 100644 index 0000000..881f12f Binary files /dev/null and b/core/assets/animplay.png differ diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index cd22d2d..3986e0c 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -14,15 +14,17 @@ import com.dungeoncrawler.view.View; import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.DungeonGenerator; import com.dungeoncrawler.model.entities.Player; +import com.dungeoncrawler.model.entities.Archer; +import com.badlogic.gdx.utils.Timer; public class Controller extends ApplicationAdapter implements InputProcessor{ SpriteBatch batch; Dungeon d; DungeonGenerator dg; View v; - Player p; - float movementX = 0f; - float movementY = 0f; + Player p; + Archer a; + Timer t; @Override public void create(){ @@ -30,14 +32,27 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v = new View(); p = new Player(); d = new Dungeon(p); + dg = new DungeonGenerator(); dg.ichWillSpielen(); + + p = new Player(); + d = new Dungeon(p); + a = new Archer(500, 200, 1); + Gdx.input.setInputProcessor(this); + t = new Timer(); + t.scheduleTask(new Timer.Task() { + @Override + public void run() { + a.rdmMove(); + } + },0,0.1f); } @Override public void render(){ - v.render(batch, movementX ,movementY); + v.render(batch, p , a); } @Override @@ -48,36 +63,47 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public boolean keyDown(int keycode) { if(keycode == Input.Keys.LEFT){ - movementX = -3f; - v.render(batch, movementX, movementY); + p.setMovementX(-3); } if(keycode == Input.Keys.RIGHT){ - movementX = 3f; - v.render(batch, movementX, movementY); + p.setMovementX(3); } if(keycode == Input.Keys.UP){ - movementY = 4f; - v.render(batch, movementX, movementY); + p.setMovementY(3); } if(keycode == Input.Keys.DOWN){ - movementY = -4f; - v.render(batch, movementX, movementY); + p.setMovementY(-3); } + if(keycode == Input.Keys.W){ + + } return true; } @Override public boolean keyUp(int keycode) { - if(keycode == Input.Keys.LEFT || keycode == Input.Keys.RIGHT){ - movementX = 0f; + if(keycode == Input.Keys.LEFT){ + p.setMovementX(0); + v.tlinksstop(); } - if(keycode == Input.Keys.DOWN || keycode == Input.Keys.UP){ - movementY = 0f; + if(keycode == Input.Keys.RIGHT){ + p.setMovementX(0); + v.trechtsstop(); + } + + if(keycode == Input.Keys.DOWN){ + p.setMovementY(0); + v.tuntenstop(); } + + if(keycode == Input.Keys.UP){ + p.setMovementY(0); + v.tobenstop(); + } return true; } diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index c50a2a8..07d13e1 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -9,16 +9,21 @@ public abstract class Entity { protected int maxhp; protected int dmg; protected int lvl; + protected int movementX; + protected int movementY; public Entity(int xPos, int yPos, int lvl){ this.xPos = xPos; this.yPos = yPos; this.lvl = lvl; + this.movementX = 0; + this.movementY = 0; } + public void attack(){ - + } public void update(){ @@ -26,11 +31,34 @@ public abstract class Entity { public void die(){ } - public void move(int movementX, int movementY){ - + public void move(){ + xPos = xPos + movementX; + yPos = yPos + movementY; } + public void rdmMove(){ + + switch((int) (Math.random() * 5)){ + case 0: //left + setMovementX(-3); + move(); + break; + case 1: //right + setMovementX(3); + move(); + break; + case 2: //up + setMovementY(3); + move(); + break; + case 3: //down + setMovementY(-3); + move(); + break; + } + } + public int getxPos() { return xPos; } @@ -78,6 +106,20 @@ public abstract class Entity { public void setLvl(int lvl) { this.lvl = lvl; } + + public int getMovementX(){ + return movementX; + } + + public void setMovementX(int movementX){ + this.movementX = movementX; + } - + public int getMovementY(){ + return movementY; + } + + public void setMovementY(int movementY){ + this.movementY = movementY; + } } \ No newline at end of file diff --git a/core/src/com/dungeoncrawler/model/Inventory.java b/core/src/com/dungeoncrawler/model/Inventory.java index 10f3d50..15a9362 100644 --- a/core/src/com/dungeoncrawler/model/Inventory.java +++ b/core/src/com/dungeoncrawler/model/Inventory.java @@ -4,7 +4,7 @@ package com.dungeoncrawler.model; public class Inventory { Item items[][]; - + Item equip; Inventory(int width, int height){ items = new Item[width][height]; @@ -24,6 +24,14 @@ public class Inventory { } } + public void equipItem(int x, int y){ + if(equip == null){ + equip = items[x][y]; + dropItem(x,y); + } + } + + public void dropItem(int x, int y){ items[x][y] = null; } diff --git a/core/src/com/dungeoncrawler/model/Room.java b/core/src/com/dungeoncrawler/model/Room.java index 55dbfd8..d518b47 100644 --- a/core/src/com/dungeoncrawler/model/Room.java +++ b/core/src/com/dungeoncrawler/model/Room.java @@ -5,8 +5,6 @@ */ package com.dungeoncrawler.model; -import com.dungeoncrawler.model.Entity; - /** * * @author jonathan @@ -14,14 +12,18 @@ import com.dungeoncrawler.model.Entity; public class Room { private ItemContainer[] item; private Entity[] enemies; + int lvl; public Room(ItemContainer[] item, Entity[] enemies){ this.item = item; this.enemies = enemies; + } - public void spawnEnemies(int xPos, int yPos){ - // TODO: Zu Implementieren + + public void spawnEnemies(int xPos, int yPos, Entity enemy){ + enemy.setxPos(xPos); + enemy.setyPos(yPos); } public void spawnItem(int xPos, int yPos){ @@ -57,4 +59,6 @@ public class Room { } + + } diff --git a/core/src/com/dungeoncrawler/model/entities/Archer.java b/core/src/com/dungeoncrawler/model/entities/Archer.java index df0fa20..361a710 100644 --- a/core/src/com/dungeoncrawler/model/entities/Archer.java +++ b/core/src/com/dungeoncrawler/model/entities/Archer.java @@ -14,4 +14,8 @@ public class Archer extends Entity{ // TODO: Sinnvolle Werte finden } + + + + } diff --git a/core/src/com/dungeoncrawler/model/entities/Player.java b/core/src/com/dungeoncrawler/model/entities/Player.java index f5dd0df..98181f4 100644 --- a/core/src/com/dungeoncrawler/model/entities/Player.java +++ b/core/src/com/dungeoncrawler/model/entities/Player.java @@ -24,4 +24,6 @@ public class Player extends Entity { // TODO: Sinnvolle Werte finden } + + } diff --git a/core/src/com/dungeoncrawler/model/entities/Swordsman.java b/core/src/com/dungeoncrawler/model/entities/Swordsman.java index d18f6fa..4c43211 100644 --- a/core/src/com/dungeoncrawler/model/entities/Swordsman.java +++ b/core/src/com/dungeoncrawler/model/entities/Swordsman.java @@ -24,4 +24,6 @@ public class Swordsman extends Entity { // TODO: Sinnvolle Werte finden } + + } diff --git a/core/src/com/dungeoncrawler/view/Map.java b/core/src/com/dungeoncrawler/view/Map.java index f60f539..cf09838 100644 --- a/core/src/com/dungeoncrawler/view/Map.java +++ b/core/src/com/dungeoncrawler/view/Map.java @@ -14,7 +14,7 @@ import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer.Cell; import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile; - +import com.badlogic.gdx.utils.Timer; /** * * @author jonathan