如何将一个开源游戏移植给一款32位微控制器
在此游戏中,图像与源码同等重要,因为它采用了大量贴图和子画面。这些都采用光线投射(Ray Casting)方法定位在屏幕上,从而给游戏以一种3D效果。光线投射包含了从一个POV(视点)的投射半径。并采用了一系列技巧以实现加速。例如,为了在像素点屏幕上投射一个半径,要做一个空间搜索,以找到该半径与最近墙上的交汇点。在Wolfenstein 3D中,墙面和贴图的尺寸都是64 x 64像素(见图3)。
本文引用地址:https://www.eepw.com.cn/article/94728.htm虽然该游戏在当时取得了无比的成功,但它也有一些局限。其中之一是墙的高度全都一样,它们全是90°,没有斜角。这些限制减轻了移植的难度,因为它们代表着源码不太复杂。另一个限制是地面和天花板没有贴图。
我会尝试在一只较新的32位微控制器上给这款游戏以新的生命。一个必需的部件是建立一个控制游戏的应用电路板。从用户角度只有两个东西是可见的,一个240 x 320 TFT彩色屏幕,以及一组让玩家在Wolfenstein 3D迷宫中穿越的按键。另外,微控制器用于屏幕和按键管理。由于这种类型屏幕采用一种并行接口(16位宽),需要选择一种能够驱动这种屏幕的微控制器。
如何更顺利地移植源码?
Wolfenstein 3D的源码相当复杂。源码越复杂,控制它就越难。因此,将这个应用移植到一个新的目标上非常困难。在开始以前,重要的是了解用于编写原应用的语言是否为可移植的,而且该语言的的编译器是否能用于新的目标。Wolfenstein 3D采用C语言编写。C语言有利于移植,因为它在微控制器领域广泛可用,市场上现有很多编译器与调试器。
C语言允许一个源码对多个目标,前提是它采用一种逻辑和清楚的方式编写。项目源文件的组织是一个考虑因素。图4提出了一种方法。
单片机相关文章:单片机教程
单片机相关文章:单片机视频教程
单片机相关文章:单片机工作原理
评论