2016-07-17 10 views
0

2dピクセルのゲームを作っていて、9ptachのテクスチャを画面に描画するのに問題があります。LibGDX 9パッチテクスチャ描画問題

コード:

TextureRegion texture = TextureManager.navigationButton; 
NinePatch patch = new NinePatch(texture, 1, 1, 1, 1); 
NinePatchDrawable ninePatch = new NinePatchDrawable(patch); 
background = new Image(ninePatch); 

TextureManager.navigationButtonがちょうど0.9 texturregion

navigationButton = textureAtlas.findRegion("navigationmenu.9"); 

をアトラスれる。これは、ボタンがどのように見えるかです: enter image description here enter image description here

私は9パッチを変更してみました0から10までの値は何も役立ちません。

はそれとも enter image description here

答えて

0

あなたはSkin1, 1, 1, 1作業を委任する必要があり、この(9つのパッチ線)のように見えます。

// load the skin first 
Skin skin = new Skin(...); // well, you can use even empty skin 
skin.addRegions(textureAtlas); 

// get the nine-patch from it 
NinePatch patch = skin.getPatch("navigationmenu"); 
NinePatchDrawable ninePatch = new NinePatchDrawable(patch); 
background = new Image(ninePatch); 

しかし、あなたはスキンを使用したい場合は、ImageButtonのように、ボタンを使用して、UIのフルパワーを使用することもできます。だから、皮膚自体にnavigationmenuの変数を定義することができます

"com.badlogic.gdx.scenes.scene2d.ui.ImageButton$ImageButtonStyle": 
{ 
    "button-navigation": 
    { 
     "imageUp": "navigationmenu" 
    } 
} 

をしてから、この魔法のトリックを行います

// add this somewhere to your scene like Image 
ImageButton navigation = new ImageButton(skin, "button-navigation"); 
+0

私は最初の方法を使用して、9本のパッチラインを示しています。 – IgnasR

+0

@IgnasRは画像に注意を払わなかった。画像の境界に黒い線がありますか?境界にアルファを除くいくつかのピクセルがありますか?黒い線はありませんか?画像は 'navigationmenu.9.png'という名前になっていますか? – desertkun

+0

黒い線は画像の境界線にあります。私はその方法で9つのパッチを当てました。画像を 'navigationmenu.9.png'と命名しました。これをパックしたときに 'navigationmenu.9'になりました。今見ている – IgnasR