推箱子游戏———DELPHI
1 游戏总共有四个级别(初级,中级,高级,特高级),每个级别10关,可自行选择,且每关可以从来。背景音乐6首可自己选择,并可以背景音效的开关。成绩判定根据所走的“步数”来判定!更多相关内容在“帮助”菜单中可得到解决!
2 在这里我仅仅介绍一下它的制作流程,对初学delphi的朋友来说这是个不错的小项目!具体代码没有贴出,如有需要可跟我联系!建议自己写,挺简单的!
3 简介:
(1) 相关变量及类型声明:
Type
GKdata=(n,m,w,b,h);//枚举类定义,用于界面信息的存储
GK_array=array [0..9,0..13] of GKdata;//界面显示箱子的存储结构
type block=record//记录类,记录箱子位置
x:byte;
y:byte;
end;
type
TForm1 = class(TForm)
procedure drawimg(var gk2:GK_array);//显示游戏界面,自定义
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);//方向键的输入,Tform类事件
procedure leftgo();//向左移动一个单位 (每个单位即是一个箱子大小)
procedure upgo();//向上移动一个单位
procedure rightgo();//向右移动一个单位
procedure downgo();//向下移动一个单位
var
gks:byte;//关卡
img:array of array of Timage;//动态timage控件数组
man:block;//人物
hole:array of block;//洞的位置数组
holenum:byte;//每关洞的个数
gk_array1:GK_array;//界面显示箱子的存储结构
degree:byte=0;//难度系数
steps:byte=0;//步数
dylabel:Tlabel;//在pannel组建上显示状态信息
(2) 部分函数,过程声明
function mtow(dir:byte):boolean;//人撞墙
function mtob(dir:byte):boolean;//人撞箱子
function mtobtob(dir:byte):boolean;//人撞箱子到箱子
function mtobtow(dir:byte):boolean;//人撞箱子到墙
procedure mrun(dir:byte);//人走
procedure brun(dir:byte);//箱子走
function win():boolean;//过关
function degreewin():boolean;//关卡
procedure count();//统计“洞”的个数
procedure stations(den:byte;gkn:byte;stn:byte); //每走一步的状态
(3) 存储结构
采用矩阵的存储结构,并自定义枚举类型用于界面信息的存储;
如:for i:=0 to 9 do
for j:=0 to 13 do
gk[i][j]:=n;//GKdata=(n,m,w,b,h)自定义枚举类
4 关键字:
枚举类型 记录类型 动态数组 动态组件生成及使用 内存的分配及释放 数据存储结构 过程 函数 音乐文件的调用 TMainmenu Tpannel Tlabel Timage