• 大小: 4KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-04-12
  • 语言: 其他
  • 标签: stm32  

资源简介

基于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

评论

共有 条评论