From 882905ce81e2653e5b221d834b5a50d0104f5523 Mon Sep 17 00:00:00 2001 From: 04Mlg04 <74152989+04Mlg04@users.noreply.github.com> Date: Wed, 23 Jun 2021 19:07:30 +0200 Subject: [PATCH] Spider added (beta) World.java changes + spider added --- Zoelda/src/main/Malin.java | 10 +---- Zoelda/src/main/World.java | 12 +++++- .../src/main/{ => entities}/LivingEntity.java | 6 +-- Zoelda/src/main/entities/Player.java | 1 - Zoelda/src/main/entities/Spider.java | 39 ++++++++++++++++++ Zoelda/src/res/images/spider_sprite_sheet.png | Bin 0 -> 26753 bytes 6 files changed, 53 insertions(+), 15 deletions(-) rename Zoelda/src/main/{ => entities}/LivingEntity.java (95%) create mode 100644 Zoelda/src/main/entities/Spider.java create mode 100644 Zoelda/src/res/images/spider_sprite_sheet.png diff --git a/Zoelda/src/main/Malin.java b/Zoelda/src/main/Malin.java index 901014d..406243b 100644 --- a/Zoelda/src/main/Malin.java +++ b/Zoelda/src/main/Malin.java @@ -10,7 +10,6 @@ import main.entities.Player; public class Malin extends Game { private World world; - private Player player; public static final int WIDTH = 1440; // Fensterbreite public static final int HEIGHT = 1056; // Fensterhöhe @@ -18,17 +17,10 @@ public class Malin extends Game { public Malin() { super(WIDTH, HEIGHT); - // Lönk - player = new Player(this); - // Welt initialisieren und Spieler hinzufügen - world = new World(player); + world = new World(this); // die Welt zu EA hinzufügen wurzel.add(world); - - Manager manager = new Manager(); - // Den Spieler als ticker registrieren (triggert dann die update methoden) - manager.anmelden(player, 20); } @Override diff --git a/Zoelda/src/main/World.java b/Zoelda/src/main/World.java index 51fc559..b793487 100644 --- a/Zoelda/src/main/World.java +++ b/Zoelda/src/main/World.java @@ -1,7 +1,9 @@ package main; import ea.Knoten; +import ea.Manager; import main.entities.Player; +import main.entities.Spider; import main.maps.Map; import main.maps.TestMap; @@ -15,14 +17,20 @@ public class World extends Knoten { private Map currentMap; // Die Map die aktuell angezeigt werden soll. - public World(Player player) { - + public World(Malin main) { + Player player = new Player(main); // Map initialisieren currentMap = new TestMap(); // Map zu EA hinzufügen add(currentMap); // und Spieler auch add(player.actionFigur); + //und Spinnen auch + add(new Spider(main).actionFigur); + + Manager manager = new Manager(); + // Den Spieler als ticker registrieren (triggert dann die update methoden) + manager.anmelden(player, 20); } public Map getCurrentMap() { diff --git a/Zoelda/src/main/LivingEntity.java b/Zoelda/src/main/entities/LivingEntity.java similarity index 95% rename from Zoelda/src/main/LivingEntity.java rename to Zoelda/src/main/entities/LivingEntity.java index 91cb9bf..d3e09fd 100644 --- a/Zoelda/src/main/LivingEntity.java +++ b/Zoelda/src/main/entities/LivingEntity.java @@ -1,8 +1,8 @@ -package main; +package main.entities; import ea.ActionFigur; import ea.Figur; -import main.entities.Entity; +import main.World; /* * Alles was zustände hat und sich Bewegen kann, ist ein LivingEntity. @@ -10,7 +10,7 @@ import main.entities.Entity; public class LivingEntity extends Entity { protected boolean side; // true = gespiegelt, false = nicht - protected ActionFigur actionFigur; // Sprite des Entities + public ActionFigur actionFigur; // Sprite des Entities protected float spriteScale = 1f; // Skalierung des Sprites protected float spriteOffsetX, spriteOffsetY; // Offset des Sprites. Hier kann man die relative render-Position nachjustieren. protected float hp; //hp des Entitys diff --git a/Zoelda/src/main/entities/Player.java b/Zoelda/src/main/entities/Player.java index ffea943..1e16d4e 100644 --- a/Zoelda/src/main/entities/Player.java +++ b/Zoelda/src/main/entities/Player.java @@ -1,7 +1,6 @@ package main.entities; import ea.Taste; -import main.LivingEntity; import main.Malin; import main.SheetLoader; diff --git a/Zoelda/src/main/entities/Spider.java b/Zoelda/src/main/entities/Spider.java new file mode 100644 index 0000000..71102ab --- /dev/null +++ b/Zoelda/src/main/entities/Spider.java @@ -0,0 +1,39 @@ +package main.entities; + +import ea.Figur; +import main.Malin; +import main.SheetLoader; + +public class Spider extends LivingEntity { + + private Malin main; // Referenz auf die main Klasse. Wird später für den Keyboardinput verwendet + private static SheetLoader loader = new SheetLoader("/res/images/spider_sprite_sheet.png", 64, 32, new int[] {5, 8, 7, 6, 2, 5, 4, 7}); + + public Spider(Malin main) { + super(loader.getFigur(5), "walk"); + this.main = main; + + width = 0.7f; + height = 0.8f; + spriteOffsetY = -0.14f; + spriteScale = 0.8f; + posX = 4f; + posY = 4f; + hp = 10f; + + } + protected void update() { + + // auf Kollisionen prüfen + checkTileCollisions(main.getWorld().getCurrentMap()); + // LivingEntity auch updaten lassen + super.update(); + velX = 0; + velY = 0; + + } + +} + + + diff --git a/Zoelda/src/res/images/spider_sprite_sheet.png b/Zoelda/src/res/images/spider_sprite_sheet.png new file mode 100644 index 0000000000000000000000000000000000000000..89de203d067c2b879afbcc7a46700ab55c9d7f8f GIT binary patch literal 26753 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 XEdBZI(D^?h;Af5HdW%dmr~Us6IYd{K literal 0 HcmV?d00001