Pixmap只是透明......这应该很容易吗?

时间:2016-09-03 15:49:47

标签: libgdx

这是我的代码;

Pixmap pm = new Pixmap(8,8,Format.RGBA8888); 
Pixmap.setBlending(Pixmap.Blending.None); //ensure when we draw transparent we REPLACE the pixels with a transparent color.
pm.setColor(Color.CLEAR);

//pm.setColor(0f,0f,0f,0f); //also didnt work.
//pm.fillRectangle(0, 0, 8, 8);  //also didnt work.
pm.fill();

Gdx.graphics.setCursor(Gdx.graphics.newCursor(pm, 0, 0));
//restore normal blending
Pixmap.setBlending(Pixmap.Blending.SourceOver);

我试图用透明像素图替换默认光标。

这似乎是完全替换游戏光标(在桌面/ gwt上)的最简单方法,而不会超出窗口的边界,从而刺激用户。

事实是,替换光标总是黑色,不透明。 我是否错误地制作了Pixmap?

你能不能使用透明游标吗? (它说它不能半透明,但我希望它完全不可见)。

有点困惑在这里,因为似乎没有多少选择可供尝试。我想我可以加载一个空的png,但这似乎......好吧......傻。

想法?

谢谢,

托马斯

1 个答案:

答案 0 :(得分:0)

好吧,就小尺寸使用时,我可以告诉它在LibGDX pixmap填充函数中的一个错误。 我发现这个结论是在地图较大时注意到它的作用。

Pixmap pm = new Pixmap(x,y,Format.RGBA8888); 
Pixmap.setBlending(Pixmap.Blending.None); 
pm.setColor(0f,0f,0f,0f);
pm.fillRectangle(0, 0, x, y);

尝试像素图的大小(x / y)我得到以下结果;

8 * 8 - 不起作用。黑色出来。

16 * 16 - 有效。完全透明。

64 * 64 - 有效。完全透明。

所以解决方法只是使用16x16或更高版本。无论如何它都是透明的,所以无关紧要。 还是,奇怪的错误。

<强>结论:

似乎是正在使用的Windows库中的一个错误。 线程讨论在这里; https://github.com/libgdx/libgdx/issues/4292#issuecomment-244804073

不幸的是,这可能意味着无法依赖解决方法。

相关问题