本游戏为推箱子游戏,即通过移动方向键来控制小人去推动箱子,直到把所有的箱子都推动到各个目标中。游戏需要在人物行走过程中无法穿越墙和箱子,并在有限的范围中放好各箱子,且每次只能搬运一个箱子。所基于的语言是8086汇编,使用的编译环境是唐都的集中开发环境TD-PIT。
本次设计的基本思想是通过将不同的元素(墙、路、箱子、人、目标位)抽象为不同的矩阵,然后将所设计的地图描抽象成一个控制矩阵来控制图像的显示,每一个控制矩阵块代表一个元素,我们通过不断刷新控制矩阵来达到显示人物移动及推箱子的效果。
1.1推箱子游戏具有的功能
(1)显示主菜单和界面
游戏需要提供货源主菜单让玩家进行游戏设置,同时能够把地图文件中的信息转化成图像显示到主游戏界面上。
(2)能够实现键盘操作功能
能够接收到键盘输入的方向键信息,并根据不同的方向键把游戏人物移动到相应的位置。例如,玩家按方向键“上”时,如果向上的位置是可移动的,那么就当把游戏人物向上移动一个方格。
(3)能够把放置到位置上的箱子进行变色显示
当玩家把箱子推到指定位置的格子时,需要把这个箱子进行变色。这样就能明确的显示出该箱子已经放置到指定的位置上。
(4) 支持游戏的时间计时和步数记录
当玩家开始游戏时就开始计时,游戏中的小人物每走一步就会记录一次步数。
(5)支持游戏的隐藏炸弹和引爆炸弹功能
如果玩家无法将指定的箱子全部推到放置点时,可以通过游戏中设的隐藏炸弹引爆阻挡的墙可以继续游戏。
(6)支持关口选择功能
玩家在游戏中可自行选择需要挑战的关口。当玩家点击菜单中的“下一关, 上一关”按钮时可进行关口的调节
(7)游戏是否通关判断功能
在游戏中,当玩家把所有的箱子都推到箱子放置点时,玩家胜利通过当前游戏关口,进行下一关口的游戏。如果玩家无法将指定的箱子全部推到放置点时,玩家失败。玩家可以选择重新进行当前关口的游戏,还是退出游戏。
(8)游戏提供帮助说明
在游戏的菜单中,提供一个使用说明项,以便对本游戏不了解的玩家对游戏进行操作和使用。
二 系统总体设计
2.1功能模块的设计
系统模块图
本程序包括六个模块,分别是初始化模块,画图 模块,移动箱子模块,移动小人模块,作弊模块和功能控制模块,各个模块的功能描述如下
(1)初始化模块
该模块包括屏幕初始化和游戏第一关的初始化。游戏每一关的初始化是构建每一关的关卡。
(2)画图模块
该模块主要是被其他模块的调用,用于画墙,在空地画箱子,画小人和画目的地。
(3)移动箱子模块
该模块用于移动箱子,包括目的地之间,空地之间和目的地与空地之间的箱子移动
(4)移动小人模块
该模块用于控制小人移动,从而推动箱子到目的地。
(5)作弊模块
该模块用于无路可走的情况下,可以把墙炸掉,可以给箱子提供一个可走的路。
(6)功能控制模块
该模块是几个功能函数的集合,包括屏幕输出功能,指定位置状态判断功能和关卡重置能。
源代码查看地址:https://github.com/lidakun/Text/blob/master/Text.txt