`
k_lb
  • 浏览: 800360 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

推箱子游戏———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

代码下载:http://gnolhh168.download.csdn.net/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics