我知道這個問題之前已經被問到過,但不幸的是我對這門語言很陌生,所以我發現的複雜解釋並沒有幫助我至少。基於網格的2D照明問題
我需要爲我的遊戲設計一個照明引擎,並且我嘗試了一些程序照明系統。此方法效果最佳:
if (light[xx - 1, yy] > light[xx, yy]) light[xx, yy] = light[xx - 1, yy] - lightPass;
if (light[xx, yy - 1] > light[xx, yy]) light[xx, yy] = light[xx, yy - 1] - lightPass;
if (light[xx + 1, yy] > light[xx, yy]) light[xx, yy] = light[xx + 1, yy] - lightPass;
if (light[xx, yy + 1] > light[xx, yy]) light[xx, yy] = light[xx, yy + 1] - lightPass;
(由「lightPass」變量,如果他們更明亮減去相鄰值) (這是在爲()循環)
這是所有好,除了花花公子幾個明顯的原因:
- 該系統有利於任何第一值到來時,在這種情況下向左(X - 1)
- 系統無法具有較深的值替換打火機值時,光源被刪除
這是上面的代碼是什麼樣的應用到我的比賽:
如果我能得到創建一個新的程序或其他照明系統,我真的很感激一些幫助!
你可能想看看我們的姊妹網站:HTTP ://gamedev.stackexchange.com/ 我們很多人都急於幫助你。 :) –