小屋創作

日誌2020-06-29 22:30

用C/C++做出簡單的3D (Pseudo 3D Mode 7)

作者:evanlin96069

(影片畫質很糟 不過實際常沒那麼糟)
這次更新了地板和天花板的部分
以前地板和天花板只是色塊沒有材質
這次用了類似 Mode 7 的方法讓地板和天花板有材質
不過在做好這些之後電腦的繪圖量增加了很多
就算把視窗調成192x144偵數也只有10~15左右
經過查詢後發現
原本使用的 WinBGIm 是一個非常舊的函式庫(30多年前的東西了)
當時的電腦可能只有300x200之類的
所以當然跑得很慢

我選擇了一個比較多人在用的2D繪圖函式庫 SDL
雖然依然只有使用繪製矩形的功能
不過速度快了非常多(好像它有用到GPU來跑)
平均都有60偵以上
最低也超過40偵

我也增加了一些判斷讓遊戲不會因為偵數的高低而改變遊戲內一些功能運行的速度
(像是偵數變高時玩家不會忽然走很快)


這裡簡單講解一下繪製地板的方法
首先要先決定近點和遠點的距離
近點是玩家能看到最靠近自己的地方
遠點則是能看到最遠的地方

有了這裡個距離
我們可以在玩家視野的最左和最右找到四個點
這四個點會形成一個梯形
接著我們就可以依照邊的比例換算出螢幕每個像素代表到地圖上的位置
(y軸要乘上arctan)
然後再取出該位置應有的材質顏色

值得注意的是
如果你調整遠點的距離
玩家會有一種正在往上飛或往下掉的感覺
如果調整近點的距離則會有在上坡或下坡的錯覺


如果有興趣的話可以參考這部影片

0

0

LINE 分享

相關創作

Windows11 KB5037771 (系統組建 226x1.3593) 安全性更新

CMS v207 新品速報

Windows10 KB5037768 (系統組建 1904x.4412) 安全性更新

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】