spider fix + entity list

This commit is contained in:
Asecave
2021-06-23 19:24:27 +02:00
parent 882905ce81
commit 9b1f3be694
5 changed files with 44 additions and 39 deletions

View File

@@ -1,8 +1,6 @@
package main; package main;
import ea.Game; import ea.Game;
import ea.Manager;
import main.entities.Player;
/** /**
* Von hier wird alles initialisiert. Das ist die höchste Klasse. * Von hier wird alles initialisiert. Das ist die höchste Klasse.

View File

@@ -1,7 +1,9 @@
package main; package main;
import java.util.ArrayList;
import ea.Knoten; import ea.Knoten;
import ea.Manager; import main.entities.Entity;
import main.entities.Player; import main.entities.Player;
import main.entities.Spider; import main.entities.Spider;
import main.maps.Map; import main.maps.Map;
@@ -16,21 +18,31 @@ public class World extends Knoten {
public static final int SCALE = SCALE_FACTOR * Tile.getSize(); // Eine Gameunit ist so viele pixel lang public static final int SCALE = SCALE_FACTOR * Tile.getSize(); // Eine Gameunit ist so viele pixel lang
private Map currentMap; // Die Map die aktuell angezeigt werden soll. private Map currentMap; // Die Map die aktuell angezeigt werden soll.
private ArrayList<Entity> entities;
public World(Malin main) { public World(Malin main) {
Player player = new Player(main);
entities = new ArrayList<>(100);
// Map initialisieren // Map initialisieren
currentMap = new TestMap(); currentMap = new TestMap();
// Map zu EA hinzufügen // Map zu EA hinzufügen
add(currentMap); add(currentMap);
// und Spieler auch
add(player.actionFigur);
//und Spinnen auch
add(new Spider(main).actionFigur);
Manager manager = new Manager(); // und Entities auch
// Den Spieler als ticker registrieren (triggert dann die update methoden) Player player = new Player(main);
manager.anmelden(player, 20); add(player.actionFigur);
entities.add(player);
Spider spider = new Spider(main);
// und Spinnen auch
add(spider.actionFigur);
entities.add(spider);
// Alle Entities als ticker registrieren (triggert dann die update methoden)
for (Entity e : entities) {
main.manager.anmelden(e, 20);
}
} }
public Map getCurrentMap() { public Map getCurrentMap() {

View File

@@ -13,7 +13,7 @@ public class LivingEntity extends Entity {
public ActionFigur actionFigur; // Sprite des Entities public ActionFigur actionFigur; // Sprite des Entities
protected float spriteScale = 1f; // Skalierung des Sprites protected float spriteScale = 1f; // Skalierung des Sprites
protected float spriteOffsetX, spriteOffsetY; // Offset des Sprites. Hier kann man die relative render-Position nachjustieren. protected float spriteOffsetX, spriteOffsetY; // Offset des Sprites. Hier kann man die relative render-Position nachjustieren.
protected float hp; //hp des Entitys protected float hp = 1f; //hp des Entitys
/** /**
* @param figur - erstes (standart) Sprite * @param figur - erstes (standart) Sprite
* @param name - name des Zustands * @param name - name des Zustands

View File

@@ -20,7 +20,6 @@ public class Player extends LivingEntity {
spriteScale = 0.8f; spriteScale = 0.8f;
posX = 4f; posX = 4f;
posY = 4f; posY = 4f;
hp = 10f;
// unterschiedliche Animationsgeschwindigkeiten // unterschiedliche Animationsgeschwindigkeiten
// für idle // für idle

View File

@@ -1,39 +1,35 @@
package main.entities; package main.entities;
import ea.Figur;
import main.Malin; import main.Malin;
import main.SheetLoader; import main.SheetLoader;
public class Spider extends LivingEntity { public class Spider extends LivingEntity {
private Malin main; // Referenz auf die main Klasse. Wird später für den Keyboardinput verwendet 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}); private static SheetLoader loader = new SheetLoader("/res/images/spider_sprite_sheet.png", 32, 32,
new int[] { 5, 6, 9, 1, 4, 3, 9, 6, 5, 6, 9, 1, 4, 3, 9, 6 });
public Spider(Malin main) { public Spider(Malin main) {
super(loader.getFigur(5), "walk"); super(loader.getFigur(0), "walk");
this.main = main; this.main = main;
width = 0.7f; width = 0.7f;
height = 0.8f; height = 0.8f;
spriteOffsetY = -0.14f; spriteOffsetY = -0.14f;
spriteScale = 0.8f; spriteScale = 0.8f;
posX = 4f; posX = 4f;
posY = 4f; posY = 4f;
hp = 10f; }
}
protected void update() { protected void update() {
// auf Kollisionen prüfen // auf Kollisionen prüfen
checkTileCollisions(main.getWorld().getCurrentMap()); checkTileCollisions(main.getWorld().getCurrentMap());
// LivingEntity auch updaten lassen // LivingEntity auch updaten lassen
super.update(); super.update();
velX = 0; velX = 0;
velY = 0; velY = 0;
} }
} }