基于FPGA的M2M异构虚拟化系统(三)
clear_screen函数
原型:void clear_screen(int color)
功能:用指定颜色清屏
说明:color为指定的颜色值,可以用宏定义的颜色值或者相应的16位数值
draw函数类
原型:void draw_map();void draw_info();void draw_ball(int x, int y);void draw_pea(int x, int y)
功能:在指定坐标位置画形状
说明:(x,y)为形状的左上角定点的坐标
display函数类
原型:int display_win();int display_lose();void display_bye()
功能:全屏显示提示信息
说明:分别提示玩家游戏成功、游戏失败、感谢信息
get_direction函数类
原型:int get_direction_1st();int get_direction_2nd()
功能:随机得到怪物的下一次移动的方向
说明:根据两个怪物位置的全局变量,简单的智能算法,计算两个怪物下一次移动的方向
move函数类
原型:void move_monster_1st();void move_monster_2nd ()
功能:移动两个怪物
说明:根据两个怪物的全局变量,计算后分别移动
null_loop函数
原型:void null_loop(int length)
功能:空循环,用于延时
说明:length参数为0时是长延时,为1时是短延时
save_lattice函数
原型:void save_lattice(int x, int y, int * array)
功能:把指定位置方格的像素值保存在数组中
说明:(x,y)为指定方格的坐标,array为全局数组变量
resume_lattice函数
原型:void resume_lattice(int x, int y, int * array)
功能:把方格像素存储到指定的坐标
说明:array为保存像素值的全局变量,(x,y)为要存放颜色的方格的坐标
4.3.2.3.基于x86汇编语言的推箱子游戏设计
开发环境: x86模拟器emu8086.exe,DOS模拟器DosBox.exe,x86汇编器NASM,windows XP及以上的操作系统。
程序流程:

图 49 推箱子程序流程图
主要模块:
init_game函数
参数:无
功能:游戏初始化
说明:初始化游戏的界面和各个变量,每次重新进入游戏时调用该函数
move_man函数
参数:输入参数ax,bx
功能:在指定的坐标处画man
说明:ax为横坐标,bx为纵坐标
move_box函数
参数:输入参数ax,bx
功能:在指定的坐标处画box
说明:ax为横坐标,bx为纵坐标
check_win函数
参数:输出参数dx
功能:检查箱子是否都放到指定位置
说明:如果箱子已经摆放好返回dx=1,否则返回dx=0
check_collision函数
参数:输出参数dx
功能:检查man和箱子是否能够移动
说明:如果有冲突返回dx=1,否则返回dx=0
check_key函数
参数:输出参数ax,bx
功能:检查是否有键按下
说明:如果有键按下,ax=1,bx=键值;否则ax=0,bx无意义
get_key函数
参数:输出参数dx
功能:等待键盘输入
说明:键盘被按下后,返回键值dx=键值
rectangle函数
参数:输入参数arg0,arg1,arg2,arg3,arg4
功能:画带颜色填充的长方形
说明:参数通过堆栈传递,arg0=left,arg1=top,arg2=right,arg3=bottom,arg4=color,颜色采用R5G5B6的16位色
xy2array函数
参数:输入参数ax,bx,输出参数dx
功能:将游戏中的x和y坐标对应到一位数组中
说明:ax为横坐标,bx为纵坐标,返回dx
draw_box函数
参数:输入参数ax,bx,cx
功能:在指定坐标处画box并用指定颜色填充
说明:ax为横坐标,bx为纵坐标,cx指定颜色
评论