📄 tetris_define.h
字号:
/*Tetris.c中定义*/
#define GAME_LOCATION 30
unsigned int code Box_Ram_data[]=
{
0x2004,0x2004,0x2004,0x2004,0x2004,0x2004,0x2004,0x2004, //十六行
0x2004,0x2004,0x2004,0x2004,0x2004,0x2004,0x2004,0x2004,
0xffff,0x0000,0x0000//多出来的三行是为了能让方块落到最低位置
//多出来的第一行置0xffff用于检测方块释放到底
//显示行初值为0x2004表示左右边界
};//游戏点阵缓存10*16(用前10位表示)(1表示亮,0表示灭)
unsigned char code speed_data[]=
{
0x46,0x49,0x49,0x31,0x00,0x7F,0x09,0x09,
0x06,0x00,0x7F,0x49,0x49,0x49,0x00,0x7F,
0x49,0x49,0x49,0x00,0x7F,0x41,0x41,0x3E,
};//speed字模
unsigned char code score_data[]=
{
0x46,0x49,0x49,0x31,0x00,0x3E,0x41,0x41,
0x22,0x00,0x3E,0x41,0x41,0x3E,0x00,0x7F,
0x11,0x29,0x46,0x00,0x7F,0x49,0x49,0x49
};//score字模
unsigned char code num_data[]=
{
0x7F,0x41,0x41,0x7F,//0字模
0x00,0x00,0x00,0x7F,//1字模
0x79,0x49,0x49,0x4F,//2字模
0x49,0x49,0x49,0x7F,//3字模
0x0F,0x08,0x08,0x7F,//4字模
0x4F,0x49,0x49,0x79,//5字模
0x7F,0x49,0x49,0x79,//6字模
0x01,0x01,0x01,0x7F,//7字模
0x7F,0x49,0x49,0x7F,//8字模
0x4F,0x49,0x49,0x7F,//9字模
};//数字字模
unsigned int idata Box_Ram[19];//定义游戏点阵缓存10*16
unsigned char box_down_reg;//定义方块下落累加寄存器
unsigned char time0_reg;//定义定时器0累加寄存器
unsigned char next_mode;//定义下一个方块的类型
unsigned char next_shape;//定义下一个方块的形状
unsigned int destroy_row_num=0;//定义所消的行数
unsigned char speed_num=0;//定义游戏速度等级
unsigned char level_num;//定义游戏难度等级
bit game_over_flag;//游戏结束标志位置0表示游戏未结束
bit pause_game_flag;//游戏暂停标志位置0表示游戏未暂停
struct
{
unsigned char mode;//类型
unsigned char shape;//形状
unsigned char x;//x坐标
unsigned char y;//y坐标
unsigned int box;//定义方块缓存
}s_box; //定义方块结构体
//声明函数
void box_build();//方块生成函数
unsigned int box_read_data(unsigned char tpmode,unsigned char tpshape);//方块缓存数据函数(输入方块类型和形状即可获得方块缓存数据)
void box_load();//方块载入函数
void box_to_Box_Ram(unsigned char tpx,unsigned char tpy,unsigned int tpbox);//方块映射游戏点阵缓存函数(参数是原来方块的位置、缓存,先消去原有位置的方块)
void game_execute();//游戏执行函数(控制方块下落,检测是否到底,如果到底调用消行函数)
void time0_initialize();//定时器0初始化函数
bit check_cover(unsigned char tpx,unsigned char tpy,unsigned int tpbox);//检查覆盖函数(检查此时带入的参数所确定的方块是否会覆盖原有图形,不会覆盖返回1,覆盖返回0)
void destroy_row();//消行函数
void show_next_box();//显示下一个方块函数
void show_score_num(unsigned char x,unsigned char y);//显示得分函数
void show_speed_num(unsigned char x,unsigned char y);//显示速度函数
void Tetris_main();//俄罗斯方块游戏主函数
void select_speed();//选择游戏速度函数
void game_over_show();//游戏结束画面显示函数
void game_initialize();//游戏初始化函数
void game_start_show();//游戏开始显示画面
bit check_game_over();//检查游戏结束函数(游戏结束返回1,游戏没有结束返回0)
void check_pause_game();//检测暂停游戏函数
void show_num(unsigned char x,
unsigned char y,
unsigned char tpdata); //显示数字函数(
//x表示x坐标,
//y表示y坐标,
//tpdata表示要显示的数字)
/*Tetris.h中定义*/
/*button_drive.h中定义*/
#define button_delay 150 //按键延时
#define button_acceleration 65 //按键加速度阈值
sbit button_a = P2^4;
sbit up = P2^2;
sbit down = P2^1;
sbit left = P2^0;
sbit right = P2^3;
unsigned int up_reg=button_delay; //按键up累加器
unsigned int down_reg=button_delay; //按键down累加器
unsigned int left_reg=button_delay; //按键left累加器
unsigned int right_reg=button_delay; //按键right累加器
unsigned int button_a_reg=button_delay; //按键button_a累加器
unsigned int right_acceleration=0; //按键right加速度寄存器
unsigned int left_acceleration=0; //按键left加速度寄存器
//声明函数
void game_button();//游戏中按键识别程序(有优先级,从高到低依次是button_a_reg>down>left>right)
unsigned char basic_button();//基本按键程序(返回0表示没按键被按下,返回1表示down被按下,返回2表示up被按下,返回3表示button_a被按下,返回4表示left被按下,返回5表示right被按下)
/*button_drive.h中定义*/
unsigned char code start_pic[]=
{
/*-- 调入了一幅图像:G:\favourite\自制\液晶屏俄罗斯方块\资料\开机画面.bmp --*/
/*-- 宽度x高度=128x64 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -