simplify lighting rendering by removing unnecessary shape calculations
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user