forked from IF-LK-2020/zulda
Iniital commit
This commit is contained in:
62
FigureMaker.java
Normal file
62
FigureMaker.java
Normal file
@@ -0,0 +1,62 @@
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user