我正在写一个Alpha地图照明系统,我在某种程度上取得了成功。这是我的代码:
g.clearAlphaMap();
g.setDrawMode(Graphics.MODE_ALPHA_MAP);
GL11.glEnable(SGL.GL_BLEND);
GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE);
g.setAntiAlias(true);
World.alphaImage.draw((200*World.tileConstant+World.globalOffsetX) - 150,(200*World.tileConstant+World.globalOffsetY) - 150, 300, 300);
g.setDrawMode(Graphics.MODE_ALPHA_BLEND);
GL11.glBlendFunc(GL11.GL_ONE_MINUS_DST_ALPHA,GL11.GL_DST_ALPHA);
Color color = new Color(0, 0, 0, .5F);
g.setColor(color);
g.fillRect(0, 0, 900, 600);
g.setDrawMode(Graphics.MODE_NORMAL);
问题是,当我这样做时:
Color color = new Color(0, 0, 0, .5F);
g.setColor(color);
g.fillRect(0, 0, 900, 600);
它只显示一个完全不透明的黑色,它不会点亮而不是0.5f。有什么想法吗?