0

私はランダムに生成された超高層ビルを持つ惑星でゲーム (libgdx & box2d) を作成しています - 下の画像を参照してください。

超高層ビルの位置、幅、高さはランダムです。私は今、これらをテクスチャ化する最良の方法を探しています。

これは、ランダムなサイズのオブジェクトのテクスチャリングをどのように解決するのが最善かについての一般的な質問です。コードを提供する必要はありません。

私が持っているオプションは何ですか?小さなテクスチャ スクエアを作成し、並べて表示しますか? それらを伸ばす?それらを手続き的に生成します(これは超高層ビルのようなテクスチャで可能でしょうか-ベースの灰色の正方形と、光の有無に応じた黒/黄色の窓)?何を考慮する必要がありますか?

現時点では、これについてどうすればよいか本当にわかりません。どんなアイデアでも大歓迎です!

ありがとうございました!

ジョナス

超高層ビルのある惑星

ストレッチでなんとかやり遂げました-今ではすべてのサイズで1つのテクスチャのみを使用していますが、それを変更します. box2d オブジェクト上に引き伸ばされたテクスチャ

4

1 に答える 1

1

あなたが言ったように、これを解決する可能性はたくさんあります。あなたがそれらの近くにいる場合、ストレッチはしばしば見栄えがよくありません. しかし、彼らが遠く離れている場合、それは良い解決策になる可能性があります. 私の意見では、それらの生成には時間がかかると思いますが、それはゲームにとっては良い考えではありません. 多くのものをコーディングする必要さえありますが、それらは常に同じように見えます。

スカイタワーが常にタイルの土台にあるとは限らないため、タイル張りは不可能だと思います。たとえば、32px のタイルを取得し、タワーの高さが 53px の場合、タイルの 1 つをストレッチ/カットする必要があるため、うまく機能しません。

私は良いフィルターでストレッチングソリューションを取ります. そのために複数の写真を撮ってください。より大きな塔がある場合は、より良い解決策のために大きな写真も撮ってください。幅と高さに注意が必要です。非常に広いタワーを大きく固定しないでください。また、細いタワーを広いタワーに固定する必要があります。少しランダム化することもできるので、確かにいくつかの異なる写真が得られます.
フィルタの例:

// we set the linear texture filter to improve the stretching
splashTexture.setFilter( TextureFilter.Linear, TextureFilter.Linear );

このチュートリアル
から libgdx のこのエントリも見てください: Know Your Texture Filters!


しかし、これは私の意見です。


Filter がデフォルトで使用されていることを確認するには、Textureメソッドを参照してください。

getMagFilter();
getMinFilter() 

次のようにフィルターを設定するためです。

setFilter(Texture.TextureFilter minFilter, Texture.TextureFilter magFilter) 
于 2013-05-14T11:02:05.380 に答える