java – 如何渲染Libgdx Bitmapfont,使其像素颜色与背景相反?
发布时间:2020-12-15 02:30:15 所属栏目:Java 来源:网络整理
导读:也不 sb.setBlendFunction(GL10.GL_ONE_MINUS_DST_COLOR,GL10.GL_ZERO);sb.begin();font.setColor(1,1,1);for (LineRect s: vertices){ font.draw(sb,""+ s.x+","+.y,s.x,s.y);}sb.end();sb.setBlendFunction(GL10.GL_ONE,GL10.GL_ONE_MINUS_SRC_ALPHA); 也
也不
sb.setBlendFunction(GL10.GL_ONE_MINUS_DST_COLOR,GL10.GL_ZERO); sb.begin(); font.setColor(1,1,1); for (LineRect s: vertices){ font.draw(sb,""+ s.x+","+.y,s.x,s.y); } sb.end(); sb.setBlendFunction(GL10.GL_ONE,GL10.GL_ONE_MINUS_SRC_ALPHA); 也不 Gdx.gl10.glEnable(GL10.GL_COLOR_LOGIC_OP); Gdx.gl10.glLogicOp(GL10.GL_XOR); sb.begin(); font.setColor(1,1); for (LineRect s: vertices){ font.draw(sb,s.y); } sb.end(); Gdx.gl10.glDisable(GL10.GL_COLOR_LOGIC_OP); 为我工作,我做错了什么? 我们的想法是绘制字体,它由具有部分透明纹理的四边形组成,除非背景为50%灰色,否则它将始终可见. 解决方法
您需要测试背景颜色的亮度.这里是我为AWT颜色制作的一种方法,应该很容易适应libgdx Color类:
/** * Returns the brightness of the color,between 0 and 255. */ public static int getBrightness(Color c) { if (c == null) return -1; return (int) Math.sqrt( c.getRed() * c.getRed() * .241 + c.getGreen() * c.getGreen() * .691 + c.getBlue() * c.getBlue() * .068); } 如果亮度<1. 128,使用光前景,否则使用暗前景. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |