請參閱我不是發佈代碼,因爲我需要邏輯,數學,算法。那麼:僞3D牆(自上而下光線投射,排序)
我正在嘗試使用圖層和視差滾動來實現自頂向下瓷磚地圖的3D視覺效果。問題是:目前我只是爲每一層設定不同的「速度」。但是,這隻適用於一些非常特定的相機位置,並且它使得塊體幾乎具有無限高度(因爲它們會「增加高度」直到它們離開相機的FOV)。
有沒有更好的(應該)來達到效果?哦,我正在使用C與Allegro 5。
我想過限制每一層的偏移量,但我不知道如何。
我目前的方法:
這是我的層「速度」當前代碼(它重複了上,下,左,右,改變座標):
if (key[ALLEGRO_KEY_UP])
camera_y[0] -= 1;
camera_y[1] -= 2;
camera_y[2] -= 3;
然後我跑一個循環來繪製貼圖相對於當前圖層的偏移量的貼圖。
順便說一句,那是預期的效果(例如3層):
每層應該按相對滾動速度進行縮放。或者,您可以在相對於視口原點的背景圖塊頂部繪製1:1大小的疊加圖塊。爲了獲得最佳效果,使用立方體「盒子」構建牆壁,其中一個平頂和四個側面瓷磚,其中兩個將根據相對於視口中心的牆「盒子」的位置繪製出歪斜。 –
我無法在任何地方找到與此技術相關的任何內容。我知道我可以讓它更順暢,並且工作正常,我只是不知道從哪裏開始。 –