资源简介
基于stm32平台开发的俄罗斯方块源代码
代码片段和文件信息
#define __GAME_H
#include “game.h“
#include “stdlib.h“
#include “stm32f10x_lib.h“
#define White 0xFFFF
#define Red 0xF800
#define White 0xFFFF
#define Grey 0xF7DE
#define Blue 0x001F
#define Blue2 0x051F
#define Magenta 0xF81F
#define Green 0x07E0
#define Cyan 0x7FFF
#define Yellow 0xFFE0
#define BLOCK_SIZE 13 //单个方块的大小
#define BLOCK_BORDER 14 //方块的边界
#define X_BORDER 21 //垂直深度
#define Y_BORDER 11 //宽
#define X_START 2 //方块初始位置
#define COLOR Green
u8 rad;
u8 rad1;
extern void dis_score(void);
void clr_score(void);
u16 score = 0;
typedef struct touch_pix {
u8 flag;
u16 pix_x;
u16 pix_y;
}touch_pix;
unsigned char picture[31][20];//记录画面像素点
int game_cnt = 0;
game_std g_game_std;
unsigned char diamond_cnt;
diamond_std *d_pointer[17];//用于指向俄罗斯方块的图形指针
int speed;
void play_game(void);
extern void check_touch(void);
extern touch_key g_touch_key;
extern touch_pix g_touch_pix;
extern void ili9320_SetPoint(unsigned short xunsigned short yunsigned short point);
void draw_adiamond(u16 xu16 yu16 point)
{
int ij;
int endx;
int endy;
endx = x+BLOCK_SIZE;
endy = y+BLOCK_SIZE;
for(i=x;i {
for(j=y;j ili9320_SetPoint(ijpoint+=20);//画点
}
}
void rub_adiamond(u16 xu16 yu16 point)
{
int ij;
int endx;
int endy;
endx = x+BLOCK_SIZE;
endy = y+BLOCK_SIZE;
for(i=x;i {
for(j=y;j ili9320_SetPoint(ijpoint); //擦除点
}
}
void draw_line(u8 xu16 point) //画线
{
int i;
for(i=0;i {
rub_adiamond(x*BLOCK_BORDERi*BLOCK_BORDERpoint); //擦除块
}
}
void draw_Ta(void) //画边界
{
int ij;
for(i=0;i {
for(j=0;j<17;j++)
{
if((i>3)&(j==Y_BORDER))
draw_adiamond(i*BLOCK_BORDERj*BLOCK_BORDERRed);
if(i==X_BORDER)
draw_adiamond(i*BLOCK_BORDERj*BLOCK_BORDERRed);
}
}
}
void draw_diamond(u16 xu16 yu16 pointu8 num)//画图形
{
unsigned char *temp;
int ij;
temp = (unsigned char *)diamond_pix[num];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(*temp++)
draw_adiamond(x+(i)*BLOCK_BORDERy+(j)*BLOCK_BORDERpoint);
}
void rub_diamond(u16 xu16 yu8 num)//擦除画图形
{
unsigned char *temp;
int ij;
temp = (unsigned char *)diamond_pix[num];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(*temp++)
rub_adiamond(x+(i)*BLOCK_BORDERy+(j)*BLOCK_BORDERWhite);
}
void game_init(void)//游戏初始化
{
int ij;
for(i=0;i<31;i++)
for(j=0;j<20;j++)
picture[i][j] = 0;
g_game_std.x = X_START;
g_game_std.y = 4;
for(i=0;i<17;i++)//为每一种图形分配空间,一共17个
{
d_pointer[i] = (diamond_std *)malloc(sizeof(diamond_std));//为每
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14176 2014-06-09 21:50 game.c
文件 1327 2014-06-09 21:48 game.h
- 上一篇:自制51单片机共阳共阴数码混用计算器超详细的注释
- 下一篇:IIR低通滤波器
相关资源
- STM32L051开发
- 四轴飞控stm32f4原理图PCB
- STM32_UVC
- STM32F107官方开发板电路包括原理图和
- pulse sensor中文资料+Stm32f103程序
- stm32 三路ADC
- Keil.STM32F0xx_DFP 包括2.0.0和1.4.0两个版本
- STM3232人体检测-心率血氧、跌到检测、
- ALIENTEK战舰STM32 V2.3原理图和PCB
- 实验3:CubeMx+Proteus+STM32 IO口模拟SPI协
- STM32F4XX的FOC5.0工程,已经编译通过
- 野火stm32-库开发中级篇-例程
- 野火stm32-库开发初级篇-例程
- 单片机晶振电路设计及布线指导
- Keil.STM32F7xx_DFP.2.12.0.rar
- 基于STM32的指纹智能门禁系统v0.zip
- 基于STM32的智能家居系统设计.zip
- PCAP02官方开发板配套软件PCAP01 PCAP04
- Keil.STM32H7xx_DFP.2.3.0.pack
- Keil及芯片包 ARM.CMSIS.5.5.1.pack STM32-F1芯
-
STM32 ST-li
nk Utility.zip - 基于STM32的LED点阵音乐频谱
- 基于STM32F407的音乐播放器设计-1.44寸
- 基于AJAX方式实现的STM32H7_WebServer源码
- STM32L151C8T6基础例程
- STM32-ADC转换
- stm32 自适应滤波器
- STM32F103 UC/OS-II关于各种任务间通信的
- STM32单片机和ZigBee的协调器基本通信协
- en.x-cube-mcsdk-ful.zip
评论
共有 条评论