我想实现某种“黑暗度”,甚至像被黑色包围的玩家周围的透明形状一样简单,例如:

我发现使用Swing的问题是,尽管这是可能的,但它意味着必须重新绘制所有内容,这会在每次发生时产生令人讨厌的“闪烁”效果。有没有一种方法可以进行某种形式的叠加,或者只是在Swing中进行叠加的一种好方法?我现在对GUI /可视化工具还没有足够的经验,所以如果可能的话,我想坚持使用Swing。
编辑:这是我的方法来绘制背景,即地板,墙壁和出口:
public final void paintBG(Graphics g){
g.setColor(Color.LIGHT_GRAY); // Screen background
g.fillRect(0, 0, getWidth(), getHeight());
// Draw the Walls of the maze
// scalex and y are for scaling images/walls within the maze since I let users specify how big they want the maze
for (int j = 0; j < this.height; j++, y += scaley) {
x = 20;
for (int i = 0; i < this.width; i++, x += scalex) {
if (!(maze[j][i].northwall.isBroken())) // If …Run Code Online (Sandbox Code Playgroud) 我想在我的2D游戏中制作手电筒效果.我的手电筒表示为从特定角度的实体延伸的线段.手电筒可以指向任何方向.手电筒的强度也不同(手电筒光束的长度).
我有一个问题,试图找出最好的(最简单?)和最灵活的方式来渲染手电筒效果.特别是平铺地图.
我可以想到两种方法.但我不知道实现它们:
如果libGDX能够做到这一点,那么我对这个/这些被调用的内容一无所知我一无所知.