2017-11-21 4 views
0

ここには2つの例がありますが、どちらもテーブルに2つの画像がありますが、サイズは異なります。テクスチャとその他のポリゴンを使用する例の唯一の違いです。ポリゴンを持つアクターがlibgdxで通常満たされないのはなぜですか?

textures

あなたが最初の画像を見ることができるように満たされている:

  1. テクスチャ x.pngは130x130で、y.pngは75x75

    Image image1 = new Image(new TextureRegionDrawable(new TextureRegion(new Texture("y.png")))); 
    Image image2 = new Image(new TextureRegionDrawable(new TextureRegion(new Texture("x.png")))); 
    mainTable.setFillParent(true); 
    mainTable.row(); 
    mainTable.add(image1).uniform().fill(); 
    mainTable.add(image2).uniform(); 
    mainTable.pack(); 
    

が出力されます第2の1つのサイズにはなりますが、ベースではサイズが異なります。


  • ポリゴン

    Image image1 = new Image(new PolygonRegionDrawable(new PolygonRegion(getSolidTexture(Color.YELLOW), new float[]{0, 0, 75, 75, 0, 75, 75, 0}, new short[]{0, 1, 2, 0, 3, 2}))); 
    Image image2 = new Image(new PolygonRegionDrawable(new PolygonRegion(getSolidTexture(Color.YELLOW), new float[]{0, 0, 130, 130, 0, 130, 130, 0}, new short[]{0, 1, 2, 0, 3, 2}))); 
    mainTable.setFillParent(true); 
    mainTable.row(); 
    mainTable.add(image1).uniform().fill(); 
    mainTable.add(image2).uniform(); 
    mainTable.pack(); 
    
  • public TextureRegion getSolidTexture(Color color) { 
         Pixmap p = new Pixmap(1, 1, RGBA8888); 
         p.setColor(color); 
         p.fill(); 
         Texture t = new Texture(p); 
         return new TextureRegion(t); 
        } 
    

    ouputを:

    polygon

    ご覧のとおり、最初の画像は2番目の画像サイズには表示されません。

    実際、ポリゴンの動作が同じではないのはなぜですか?

    答えて

    0

    私が考えたように、PolygonRegionは、頂点と同じサイズでなければならず、それ以降は通常はスケーリングされていなければなりません。

    私のコードでは、私の頂点配列を私のpixmapと同じサイズに拡大するだけです。

    float[] vertices1 = {0, 0, 75, 75, 0, 75, 75, 0}; 
        vertices1 = GeometryUtils.scale(vertices1, 0, 0, 1, 1); 
        Image image1 = new Image(new PolygonRegionDrawable(new PolygonRegion(resources.getSolidTexture(Color.YELLOW), vertices1, new short[]{0, 1, 2, 0, 3, 2}))); 
        float[] vertices2 = {0, 0, 130, 130, 0, 130, 130, 0}; 
        vertices2 = GeometryUtils.scale(vertices2, 0, 0, 1, 1); 
        Image image2 = new Image(new PolygonRegionDrawable(new PolygonRegion(resources.getSolidTexture(Color.YELLOW), vertices2, new short[]{0, 1, 2, 0, 3, 2}))); 
        mainTable.setFillParent(true); 
        mainTable.row(); 
        mainTable.add(image1).uniform().fill(); 
        mainTable.add(image2).uniform(); 
        mainTable.pack(); 
    

    少なくとも私にとっては、Googleやインターネットでその情報を見つけることができないのは非常に奇妙です。絶望の後、私はデバッグ中に解決策を見つけました。

    関連する問題