
engine.graphics.MarioBackground Maven / Gradle / Ivy
package engine.graphics;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import java.awt.Transparency;
import engine.helper.Assets;
public class MarioBackground extends MarioGraphics {
private Image image;
private Graphics2D g;
private int screenWidth;
public MarioBackground(GraphicsConfiguration graphicsConfiguration, int screenWidth, int[][] indeces) {
super();
this.width = indeces[0].length * 16;
this.height = indeces.length * 16;
this.screenWidth = screenWidth;
image = graphicsConfiguration.createCompatibleImage(width, height, Transparency.BITMASK);
g = (Graphics2D) image.getGraphics();
g.setComposite(AlphaComposite.Src);
updateArea(indeces);
}
private void updateArea(int[][] indeces) {
g.setBackground(new Color(0, 0, 0, 0));
g.clearRect(0, 0, this.width, this.height);
for (int x = 0; x < indeces[0].length; x++) {
for (int y = 0; y < indeces.length; y++) {
int xTile = indeces[y][x] % 8;
int yTile = indeces[y][x] / 8;
g.drawImage(Assets.level[xTile][yTile], x * 16, y * 16, 16, 16, null);
}
}
}
@Override
public void render(Graphics og, int x, int y) {
int xOff = x % this.width;
for (int i = -1; i < this.screenWidth / this.width + 1; i++) {
og.drawImage(image, -xOff + i * this.width, 0, null);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy