我最近一直在尋找到LibGDX和似乎碰了壁,在圖片中看到,藍點代表了用戶的手指,地圖產生它的自我是我似乎被卡住,不LibGDX提供了一種動態繪製曲線對象的方法?我可以簡單地將它們自己生成爲圖像,但隨後將圖像極大地拉伸至手指可以適合3的間隙處!但也需要是PX的高1000,以適應整個級別的設計。
是這樣的,我應該繪製數百個多邊形靠近在一起,使曲線? 在一邊我不需要一種方法來確定什麼時候對象有從底部到頂部,所以我可以生成另一個'塊'的地圖。
我最近一直在尋找到LibGDX和似乎碰了壁,在圖片中看到,藍點代表了用戶的手指,地圖產生它的自我是我似乎被卡住,不LibGDX提供了一種動態繪製曲線對象的方法?我可以簡單地將它們自己生成爲圖像,但隨後將圖像極大地拉伸至手指可以適合3的間隙處!但也需要是PX的高1000,以適應整個級別的設計。
是這樣的,我應該繪製數百個多邊形靠近在一起,使曲線? 在一邊我不需要一種方法來確定什麼時候對象有從底部到頂部,所以我可以生成另一個'塊'的地圖。
如何創建一組可變化的曲面形狀。就像每個圖像頂部和底部的中間缺口位於中間(在末端和起點處具有相同的曲率)... 在開始和結束點之間,您可以在形狀上發瘋。
最後,您可以隨意將這些圖像放在一起,並獲得無盡的世界。
如果你不想每次都在中間停下來,你也可以有三個入口和出口點(左,中,右)......並且在一個圖像結束後,你當然需要添加一個圖像,從左邊開始,但可能結束於其他地方...
您不需要數百個多邊形來繪製像您繪製的曲線。你可以用左邊的40個四邊形和右邊的40個,而且看起來非常平滑。將它提高到每邊100個,它看起來幾乎完美平滑,沒有現代設備在60fps下運行會有任何問題。
您可以使用Mesh類爲每一邊生成一個程序網格。您可以將網格留在一個點上,鎖定到相機,並修改其頂點和UV,使其看起來像您正在平移一個無限長的走廊。這需要預先計算相當數量的數據,但一旦你有了這個數據,應該是平穩的航行。
基本上,您的關卡設計可以基於某種以Y偏移量爲輸入的等式。或者它可能是一個很長的偏移量陣列,您可以使用樣條方程或線性方程來在它們之間插值。輸出將是UV和X座標,可用於更新兩個網格的每個頂點。
您可以使用頂點着色器高效更新UV座標,使用您更新每個幀的常量偏移統一參數。這樣您就不必將UV數據每幀移動到GPU。
對於頂點位置,使用Mesh的底層float[]
,並且每幀調用setVertices()
來更新它。信息here。
實際上,如果單獨放置UV位置和X位置並向上滾動Y位置,效果可能會更好。在屏幕的頂部和底部保持幾個四邊形填充,然後在頂部四邊形滾動屏幕後將它移到底部。
那麼,從高層次的角度來看,這對我來說肯定是有意義的,但是我認爲我有一些GDX的方法可以開始在代碼中實際實現它,這要歸功於優秀的響應! – Broak
您可以在運行時自行繪製一個'PixMap',例如基於'CatmullRomSpline'。 – noone
你有沒有找到適合你的解決方案? –