simplify lighting rendering by removing unnecessary shape calculations

This commit is contained in:
2025-12-13 13:09:15 +01:00
parent 4b9c0006a6
commit 7ee7614c6c

View File

@@ -3,9 +3,6 @@ package de.miaurizius.jgame2d.environment;
import de.miaurizius.jgame2d.core.GamePanel;
import java.awt.*;
import java.awt.geom.Area;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
public class Lighting {
@@ -18,24 +15,12 @@ public class Lighting {
darknessFilter = new BufferedImage(panel.screenWidth, panel.screenHeight, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = darknessFilter.createGraphics();
Area screenArea = new Area(new Rectangle2D.Double(0, 0, panel.screenWidth, panel.screenHeight));
int centerX = panel.player.screenX + panel.tileSize/2;
int centerY = panel.player.screenY + panel.tileSize/2;
double x = centerX - (double) circleSize /2;
double y = centerY - (double) circleSize /2;
Shape circleShape = new Ellipse2D.Double(x, y, circleSize, circleSize);
Area circleArea = new Area(circleShape);
screenArea.subtract(circleArea);
RadialGradientPaint gPaint = getRadialGradientPaint((float) circleSize, centerX, centerY);
g2.setPaint(gPaint);
g2.fill(circleArea);
g2.setColor(new Color(0, 0, 0, 0.95F));
g2.fill(screenArea);
g2.fillRect(0, 0, panel.screenWidth, panel.screenHeight);
g2.dispose();
}