2013-05-14 27 views
0

我正在製作一個遊戲(libgdx & box2d),隨機生成的行星上有摩天大樓 - 請參閱下圖。紋理隨機生成和尺寸的Rects

摩天大樓的位置,寬度和高度都是隨機的。我現在正在尋找最好的方式來紋理這些。

這是關於如何最好地解決紋理隨機大小的對象的一般問題,儘管您可能不需要提供代碼。

我有什麼選擇?製作小的紋理方塊並將它們平鋪?拉伸它們?程序化地生成它們(這對於摩天大樓般的紋理來說是可能的 - 對於底座來說是灰色的方形,對於有/沒有光線的情況下是黑色/黃色的窗口)?我需要考慮什麼?

我現在真的不知道如何去做這件事。任何想法都歡迎!

謝謝!

喬納斯

Planet with Skyscrapers

設法做到把它用做拉伸 - 現在只使用於各種規模一個紋理,但我會改變這種狀況。 stretched textures over box2d objects

回答

1

正如你所說,你有很多可以解決這個問題。如果你接近這些,拉鍊往往看起來不太好。但是,如果他們收費,這可能是一個很好的解決方案。在我看來,生成這些確實需要時間我猜,這對於一款遊戲來說不是個好主意。你甚至不得不編寫很多東西,他們總是看起來像我想的那樣。

我想瓷磚是不可能的,因爲你的天空並不總是在瓷磚的基礎上。因此,例如,您獲得了32像素的瓷磚,並且您的鐵塔高度爲53像素,因此無法正常工作,因爲您需要拉伸/切割或其中一個瓷磚。

我會採取一個很好的過濾器streched解決方案。獲得超過1張照片,因此如果你有更大的塔架,也可以爲更好的解決方案拍攝更大的圖片。你需要注意寬度和高度。你不應該把一個非常寬的塔架搭在很多的地方,也應該把一個很薄的塔架變成一個寬的塔架。你也可以隨機一點,所以你肯定有一些不同的圖片。
例如,用於過濾器:

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

From this tutorial
在從libgdx該條目也看看:Know Your Texture Filters!


不過這只是我的看法。


要找出過濾器默認情況下使用看看Texture方法。

getMagFilter(); 
getMinFilter() 

,因爲你這樣設置過濾器:

setFilter(Texture.TextureFilter minFilter, Texture.TextureFilter magFilter) 
+0

謝謝你,BennX。你寫了一些關於「良好過濾器」伸展的文章。你能詳細說明你的意思嗎?我對圖形/遊戲編程非常陌生,所以我們非常感謝你指向正確的方向。非常感謝您的參與! – Jonas 2013-05-14 12:36:28

+0

我添加了一個小例子。您可以將過濾器設置爲圖像,以便以不同的方式燙傷。有了一些過濾器,你可能會得到一個不好的結果,但有一些其他的它可能真的很好看看它提供的Enum TextureFilter。 – BennX 2013-05-14 12:46:19

+0

謝謝,BennX!今晚我會檢查一下! – Jonas 2013-05-14 12:49:38