如何將一個(gè)開(kāi)源游戲移植給一款32位微控制器
在此游戲中,圖像與源碼同等重要,因?yàn)樗捎昧舜罅抠N圖和子畫(huà)面。這些都采用光線投射(Ray Casting)方法定位在屏幕上,從而給游戲以一種3D效果。光線投射包含了從一個(gè)POV(視點(diǎn))的投射半徑。并采用了一系列技巧以實(shí)現(xiàn)加速。例如,為了在像素點(diǎn)屏幕上投射一個(gè)半徑,要做一個(gè)空間搜索,以找到該半徑與最近墻上的交匯點(diǎn)。在Wolfenstein 3D中,墻面和貼圖的尺寸都是64 x 64像素(見(jiàn)圖3)。
本文引用地址:http://m.butianyuan.cn/article/94728.htm雖然該游戲在當(dāng)時(shí)取得了無(wú)比的成功,但它也有一些局限。其中之一是墻的高度全都一樣,它們?nèi)?0°,沒(méi)有斜角。這些限制減輕了移植的難度,因?yàn)樗鼈兇碇创a不太復(fù)雜。另一個(gè)限制是地面和天花板沒(méi)有貼圖。
我會(huì)嘗試在一只較新的32位微控制器上給這款游戲以新的生命。一個(gè)必需的部件是建立一個(gè)控制游戲的應(yīng)用電路板。從用戶角度只有兩個(gè)東西是可見(jiàn)的,一個(gè)240 x 320 TFT彩色屏幕,以及一組讓玩家在Wolfenstein 3D迷宮中穿越的按鍵。另外,微控制器用于屏幕和按鍵管理。由于這種類(lèi)型屏幕采用一種并行接口(16位寬),需要選擇一種能夠驅(qū)動(dòng)這種屏幕的微控制器。
如何更順利地移植源碼?
Wolfenstein 3D的源碼相當(dāng)復(fù)雜。源碼越復(fù)雜,控制它就越難。因此,將這個(gè)應(yīng)用移植到一個(gè)新的目標(biāo)上非常困難。在開(kāi)始以前,重要的是了解用于編寫(xiě)原應(yīng)用的語(yǔ)言是否為可移植的,而且該語(yǔ)言的的編譯器是否能用于新的目標(biāo)。Wolfenstein 3D采用C語(yǔ)言編寫(xiě)。C語(yǔ)言有利于移植,因?yàn)樗谖⒖刂破黝I(lǐng)域廣泛可用,市場(chǎng)上現(xiàn)有很多編譯器與調(diào)試器。
C語(yǔ)言允許一個(gè)源碼對(duì)多個(gè)目標(biāo),前提是它采用一種邏輯和清楚的方式編寫(xiě)。項(xiàng)目源文件的組織是一個(gè)考慮因素。圖4提出了一種方法。
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評(píng)論