Compare commits
2 Commits
537e0c8b5e
...
86bd78713a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86bd78713a | ||
|
|
3c124629fa |
@@ -5,10 +5,10 @@ import ea.Taste;
|
||||
public class Player extends LivingEntity {
|
||||
|
||||
private Malin main; // Referenz auf die main Klasse. Wird später für den Keyboardinput verwendet
|
||||
private static PlayerSheetLoader loader = new PlayerSheetLoader();
|
||||
private static SheetLoader loader = new SheetLoader("/res/images/player_sprite_sheet.png", 64, 32, new int[] {5, 8, 7, 6, 2, 5, 4, 7});
|
||||
|
||||
public Player(Malin main) {
|
||||
super(loader.getPlayer(0), "idle_left");
|
||||
super(loader.getFigur(0), "idle_left");
|
||||
this.main = main;
|
||||
|
||||
// Entity-Eigenschaften werden festgelegt
|
||||
@@ -22,16 +22,16 @@ public class Player extends LivingEntity {
|
||||
|
||||
// unterschiedliche Animationsgeschwindigkeiten
|
||||
// für idle
|
||||
loader.getPlayer(0).animationsGeschwindigkeitSetzen(200);
|
||||
loader.getFigur(0).animationsGeschwindigkeitSetzen(200);
|
||||
// fürs laufen
|
||||
loader.getPlayer(1).animationsGeschwindigkeitSetzen(50);
|
||||
loader.getFigur(1).animationsGeschwindigkeitSetzen(50);
|
||||
|
||||
// Zustände werden hinzugefügt
|
||||
actionFigur.neuerZustand(loader.getPlayer(0), "idle");
|
||||
actionFigur.neuerZustand(loader.getPlayer(1), "walk");
|
||||
actionFigur.neuerZustand(loader.getPlayer(2), "strike");
|
||||
actionFigur.neuerZustand(loader.getPlayer(3), "swipe");
|
||||
actionFigur.neuerZustand(loader.getPlayer(4), "die");
|
||||
actionFigur.neuerZustand(loader.getFigur(0), "idle");
|
||||
actionFigur.neuerZustand(loader.getFigur(1), "walk");
|
||||
actionFigur.neuerZustand(loader.getFigur(2), "strike");
|
||||
actionFigur.neuerZustand(loader.getFigur(3), "swipe");
|
||||
actionFigur.neuerZustand(loader.getFigur(7), "die");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -71,6 +71,9 @@ public class Player extends LivingEntity {
|
||||
if (main.tasteGedrueckt(Taste.Q)) {
|
||||
zustandSetzen("strike");
|
||||
}
|
||||
if (main.tasteGedrueckt(Taste.F)) {
|
||||
zustandSetzen("die");
|
||||
}
|
||||
}
|
||||
|
||||
// auf Kollisionen prüfen
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
package main;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
|
||||
import ea.Figur;
|
||||
import ea.internal.gra.PixelFeld;
|
||||
|
||||
public class PlayerSheetLoader {
|
||||
|
||||
private static Figur[] player;
|
||||
|
||||
public PlayerSheetLoader() {
|
||||
try {
|
||||
BufferedImage sheet = ImageIO.read(Tile.class.getResourceAsStream("/res/images/player_sprite_sheet.png"));
|
||||
|
||||
PixelFeld[][] sprites = new PixelFeld[5][];
|
||||
sprites[0] = new PixelFeld[5];
|
||||
sprites[1] = new PixelFeld[8];
|
||||
sprites[2] = new PixelFeld[7];
|
||||
sprites[3] = new PixelFeld[6];
|
||||
sprites[4] = new PixelFeld[7];
|
||||
|
||||
loadSprites(sprites[0], 0, 64, 32, sheet);
|
||||
loadSprites(sprites[1], 1, 64, 32, sheet);
|
||||
loadSprites(sprites[2], 2, 64, 32, sheet);
|
||||
loadSprites(sprites[3], 3, 64, 32, sheet);
|
||||
loadSprites(sprites[4], 4, 64, 32, sheet);
|
||||
|
||||
Figur fig;
|
||||
player = new Figur[5];
|
||||
for (int i = 0; i < player.length; i++) {
|
||||
fig = new Figur();
|
||||
fig.animationSetzen(sprites[i]);
|
||||
player[i] = fig;
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public Figur getPlayer(int y) {
|
||||
return player[y];
|
||||
}
|
||||
|
||||
private void loadSprites(PixelFeld[] sprites, int row, int w, int h, BufferedImage sheet) {
|
||||
for (int s = 0; s < sprites.length; s++) {
|
||||
sprites[s] = new PixelFeld(w, h, 1);
|
||||
for (int x = 0; x < w; x++) {
|
||||
for (int y = 0; y < h; y++) {
|
||||
Color clr = new Color(sheet.getRGB((s * w + x), (row * h + y)), true);
|
||||
sprites[s].farbeSetzen(x, y, clr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
68
Zoelda/src/main/SheetLoader.java
Normal file
68
Zoelda/src/main/SheetLoader.java
Normal file
@@ -0,0 +1,68 @@
|
||||
package main;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
|
||||
import ea.Figur;
|
||||
import ea.internal.gra.PixelFeld;
|
||||
|
||||
public class SheetLoader {
|
||||
|
||||
private static Figur[] figures;
|
||||
|
||||
/**
|
||||
* Macht aus einem Spritesheet Figuren.
|
||||
* @param path - Der pfad zum sheet
|
||||
* @param width - die Breite von einem Bild
|
||||
* @param height - die Höhe von einem Bild (nicht das ganze sheet)
|
||||
* @param lengths - die Anzahl der Frames der verschiedenen Animationen
|
||||
*/
|
||||
public SheetLoader(String path, int width, int height, int[] frames) {
|
||||
|
||||
try {
|
||||
// Bild laden
|
||||
BufferedImage sheet = ImageIO.read(Tile.class.getResourceAsStream(path));
|
||||
|
||||
// Anzahl der Animationen
|
||||
int rows = frames.length;
|
||||
|
||||
// Sprites anordnen *magie*
|
||||
PixelFeld[][] sprites = new PixelFeld[rows][];
|
||||
for (int i = 0; i < frames.length; i++) {
|
||||
sprites[i] = new PixelFeld[frames[i]];
|
||||
}
|
||||
for (int i = 0; i < sprites.length; i++) {
|
||||
loadSprites(sprites[i], i, width, height, sheet);
|
||||
}
|
||||
Figur fig;
|
||||
figures = new Figur[rows];
|
||||
for (int i = 0; i < figures.length; i++) {
|
||||
fig = new Figur();
|
||||
fig.animationSetzen(sprites[i]);
|
||||
figures[i] = fig;
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public Figur getFigur(int y) {
|
||||
return figures[y];
|
||||
}
|
||||
|
||||
private void loadSprites(PixelFeld[] sprites, int row, int w, int h, BufferedImage sheet) {
|
||||
for (int s = 0; s < sprites.length; s++) {
|
||||
sprites[s] = new PixelFeld(w, h, 1);
|
||||
for (int x = 0; x < w; x++) {
|
||||
for (int y = 0; y < h; y++) {
|
||||
Color clr = new Color(sheet.getRGB((s * w + x), (row * h + y)), true);
|
||||
sprites[s].farbeSetzen(x, y, clr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user