75 lines
2.8 KiB
Java
75 lines
2.8 KiB
Java
package engine.helper;
|
|
|
|
import java.awt.AlphaComposite;
|
|
import java.awt.Graphics2D;
|
|
import java.awt.GraphicsConfiguration;
|
|
import java.awt.Image;
|
|
import java.awt.Transparency;
|
|
import java.awt.image.BufferedImage;
|
|
import java.io.IOException;
|
|
import java.io.File;
|
|
|
|
import javax.imageio.ImageIO;
|
|
import javax.imageio.ImageReader;
|
|
import javax.imageio.stream.ImageInputStream;
|
|
|
|
|
|
public class Assets {
|
|
public static Image[][] mario;
|
|
public static Image[][] smallMario;
|
|
public static Image[][] fireMario;
|
|
public static Image[][] enemies;
|
|
public static Image[][] items;
|
|
public static Image[][] level;
|
|
public static Image[][] particles;
|
|
public static Image[][] font;
|
|
public static Image[][] map;
|
|
|
|
public static void init(GraphicsConfiguration gc) {
|
|
try {
|
|
mario = cutImage(gc, "mariosheet.png", 32, 32);
|
|
smallMario = cutImage(gc, "smallmariosheet.png", 16, 16);
|
|
fireMario = cutImage(gc, "firemariosheet.png", 32, 32);
|
|
enemies = cutImage(gc, "enemysheet.png", 16, 32);
|
|
items = cutImage(gc, "itemsheet.png", 16, 16);
|
|
level = cutImage(gc, "mapsheet.png", 16, 16);
|
|
particles = cutImage(gc, "particlesheet.png", 16, 16);
|
|
font = cutImage(gc, "font.gif", 8, 8);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
private static Image getImage(GraphicsConfiguration gc, String imageName) throws IOException {
|
|
//FIXME: web/local
|
|
//File file = new File(System.getProperty("user.dir") + "/img/" + imageName); // Local test
|
|
File file = new File("/app/img/" + imageName); // For web
|
|
BufferedImage source = ImageIO.read(file);
|
|
Image image = gc.createCompatibleImage(source.getWidth(), source.getHeight(), Transparency.BITMASK);
|
|
Graphics2D g = (Graphics2D) image.getGraphics();
|
|
g.setComposite(AlphaComposite.Src);
|
|
g.drawImage(source, 0, 0, null);
|
|
g.dispose();
|
|
return image;
|
|
}
|
|
|
|
private static Image[][] cutImage(GraphicsConfiguration gc, String imageName, int xSize, int ySize) throws IOException {
|
|
Image source = getImage(gc, imageName);
|
|
Image[][] images = new Image[source.getWidth(null) / xSize][source.getHeight(null) / ySize];
|
|
for (int x = 0; x < source.getWidth(null) / xSize; x++) {
|
|
for (int y = 0; y < source.getHeight(null) / ySize; y++) {
|
|
Image image = gc.createCompatibleImage(xSize, ySize, Transparency.BITMASK);
|
|
Graphics2D g = (Graphics2D) image.getGraphics();
|
|
g.setComposite(AlphaComposite.Src);
|
|
g.drawImage(source, -x * xSize, -y * ySize, null);
|
|
g.dispose();
|
|
images[x][y] = image;
|
|
}
|
|
}
|
|
|
|
return images;
|
|
}
|
|
|
|
}
|