2016-09-03 7 views
0

ここに私のコードです。Pixmap thats just transparent ....これは簡単でしょうか?

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を読み込むことができたと思うが、それは....まあ....ばかだと思う。

アイデア?

おかげで、

トーマス

+0

奇妙な。アルファ塗りつぶしの値として1/255を使用するとどうなりますか? – Tenfour04

+0

あなたはどういう意味ですか? \t pm.setColor(0f、0f、0f、1/255f); ?変わりはない。 しかし、私はそれを持っていると思う。小さなpixmapsで使用される塗りつぶしのバグのようです。 – darkflame

答えて

0

[OK]を、限り小さなサイズに使用されたとき、私はそのにLibGDXピックスマップの塗りつぶし機能のバグを言うことができるように。 地図が大きくなったときに気付いた後、私はこの結論に達しました。

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); 

pixmap(x/y)のサイズを実験すると、次の結果が得られます。

8 * 8 - 動作しません。黒く出る

16 * 16 - 作品。完全に透明です。

64 * 64 - 作品。完全に透明です。

回避策は、16x16以上を使用することです。とにかく透明ですので、問題はありません。 まだ、奇妙なバグ。

結論:

が使用されているWindowsのライブラリのバグであると思われます。 スレッドのディスカッションはこちら。 https://github.com/libgdx/libgdx/issues/4292#issuecomment-244804073

残念ながら、これは回避策が頼りにならない可能性があることを意味します。

+0

これはPixmapのバグではないかもしれませんが、OSはカーソルのような小さな画像を得るのが好きではないかもしれません。 – Tenfour04

+0

(あなたのintrigusがある場合は、libgdxバグスレッドでも返信します)。 基本的には良いアイデアですが、私はそれを平らな色で試してみました。 小さい+アルファに特有のOS側でまだ何かがあるかもしれません。 – darkflame

関連する問題