2016-05-24 6 views
1

私のゲームでは単純な三角形(障害物)があり、テクスチャを繰り返し埋めたいと思います。私は他の2つのトピックを見てきましたが、実際の解決策を見つけることができませんでした。私は小さな画像で、この三角形を埋めることができますどのように(そのと呼ばれることを前提とし「brickTexture.pngは、」ここで繰り返し? はObstacle.javaBox2dテクスチャで満たされたボディLibgdx

BodyDef bdef = new BodyDef(); 
bdef.position.set(obstaclePosition); 
bdef.type = BodyDef.BodyType.StaticBody; 
b2body = world.createBody(bdef); 

FixtureDef fdef = new FixtureDef(); 
PolygonShape triangle = new PolygonShape(); 
float vertices1[] ={-50/PPM, 100/PPM, 
        50/PPM, 100/PPM, 
        0/PPM, 0/PPM}; 
triangle.set(vertices1); 

fdef.shape = triangle; 
b2body.createFixture(fdef); 

に障害物のbox2dbodyを作成するためのコードがあり、これは三角形であります

enter image description here

答えて

1

これは簡単なクラスをPolygonRegionPolygonSpriteBatchを使用することによって達成することができ、任意の多角形(だけでなく、三角形)のために働くだろう。

ポリゴンリージョンを作成します:

// this will calculate the triangles given your vertices 
short triangles[] = new EarClippingTriangulator().computeTriangles(vertices1).toArray(); 
// use your texture region 
PolygonRegion polygonRegion = new PolygonRegion(textureRegion, vertices1, triangles); 

次に、あなたが所望の位置(私は身体の位置を推定)でレンダリングするPolygonSpriteBatchを使用する必要があります。

polygonSpriteBatch.draw(polygonRegion, x, y); 

あなたをロードしていることを確認しますテクスチャはとなります。を繰り返してタイルすることができます:

texture.setWrap(Texture.TextureWrap.Repeat, Texture.TextureWrap.Repeat); 

クラスドキュメント:PolygonRegionEarClippingTriangulatorPolygonSpriteBatch

+0

ありがとう、たくさんの友達!気にしなければもう少し小さな質問がありますが、元のファイルのサイズを変更せずにテクスチャの密度を変更するにはどうしたらいいですか? –

+0

申し訳ありませんが、私は実際にあなたがテクスチャ密度を意味するものを得ていません。おそらくあなたは異なるサイズでそれを描くことを意味するでしょうか?そうであれば、PolygonSpriteBatchには、そのようなニーズのためのargsを持つ描画メソッドがいくつかあります。または、テクスチャフィルタを線形に設定して描画するときに、ピクセル化されていないようにしたいかもしれません:texture.setFilter(TextureFilter.Linear、TextureFilter.Linear); ご迷惑をおかけして申し訳ございませんが、すでに解決済みです。 – LordCoppetti

+0

実際、私が意味するものは違っていましたが、私はこの三角測量システムがちょうど現在どのように機能しているかを知っています。もう一度助けてくれてありがとう。感謝 –

関連する問題