forked from IF-LK-2020/zulda
63 lines
2.3 KiB
Java
63 lines
2.3 KiB
Java
|
import ea.*;
|
||
|
import ea.internal.gra.PixelFeld;
|
||
|
import ea.internal.io.ImageLoader;
|
||
|
|
||
|
import java.awt.*;
|
||
|
import java.awt.image.BufferedImage;
|
||
|
|
||
|
public class FigureMaker {
|
||
|
|
||
|
public static Figur makeFigureFromSprite( String pPath, int pWidth ) {
|
||
|
return makeFigureFromSprite(pPath, pWidth, pWidth, 0, 0);
|
||
|
}
|
||
|
|
||
|
public static Figur makeFigureFromSprite( String pPath, int pWidth, int pHeight, int pRow, int pSpriteCount ) {
|
||
|
BufferedImage image = ImageLoader.loadExternalImage(pPath);
|
||
|
|
||
|
int spriteCount = pSpriteCount;
|
||
|
if( pSpriteCount <= 1 ) {
|
||
|
spriteCount = image.getWidth() / pWidth;
|
||
|
}
|
||
|
|
||
|
PixelFeld[] pfelder = new PixelFeld[spriteCount];
|
||
|
|
||
|
for ( int s = 0; s < spriteCount; s++ ) {
|
||
|
pfelder[s] = new PixelFeld(pWidth, pHeight, 1);
|
||
|
for (int x = 0; x < pWidth; x++) {
|
||
|
for (int y = 0; y < pHeight; y++) {
|
||
|
Color clr = new Color(image.getRGB(
|
||
|
(s*pWidth+x),
|
||
|
(pRow*pHeight+y)
|
||
|
), true);
|
||
|
if( clr.getAlpha() > 0 ) {
|
||
|
pfelder[s].farbeSetzen(x, y, clr);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Figur fig = new Figur();
|
||
|
fig.animationSetzen(pfelder);
|
||
|
return fig;
|
||
|
}
|
||
|
|
||
|
public static void main(String[] args) {
|
||
|
String[] states = new String[]{
|
||
|
"idle_right", "run_right", "slashup_right", "slashdown_right", "slash_right", "jump_right", "hit_right", "die_right",
|
||
|
"idle_left", "run_left", "slashup_left", "slashdown_left", "slash_left", "jump_left", "hit_left", "die_left"
|
||
|
};
|
||
|
int[] sprite_counts = new int[]{
|
||
|
13, 8, 10, 10, 10, 6, 4, 7,
|
||
|
13, 8, 10, 10, 10, 6, 4, 7
|
||
|
};
|
||
|
for( int i = 0; i < states.length; i++ ) {
|
||
|
Figur fig = FigureMaker.makeFigureFromSprite("/Users/jneug/Projekte/Schule/schule-projekte/OOP/BlueJ/40-Zulda/images/adventurer.png", 32, 32, i, sprite_counts[i]);
|
||
|
DateiManager.schreiben(fig, "/Users/jneug/Projekte/Schule/schule-projekte/OOP/BlueJ/40-Zulda/images/adventurer_"+states[i]+".eaf");
|
||
|
System.out.println("Wrote figure for state "+states[i]);
|
||
|
}
|
||
|
System.out.println("Success!");
|
||
|
System.exit(0);
|
||
|
}
|
||
|
|
||
|
}
|