judge_score(); //判断与更新得分 LCD_Draw_Pic(LCD); delay_ms(50); }
return 0; }
void judge_score(void) {
if((car2_x==35)) {
if((car2_y<=y)&&(car2_y+12>=y)) {
score++;
update_score(score); } } } Game.c
#include \
u8 LCD[8][128]; u8
car[2][12]={0X00,0X1E,0X0C,0X0C,0XFF,0XFF,0XFF,0XFF,0X0C,0X0C,0X1E,0X00,
0XF8,0X30,0X30,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X30,0X30,0XF8}; u8
block[2][12]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; u8
black[4][18]={0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF,
0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF,
0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF,
0XFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0XFF}; u8
street[16]={0x00,0x00,0x10,0x38,0x3C,0X7E,0XFF,0X18,0X18,0X18,0X18,0X18,0XDB,0X00,0XFF,0XFF}; u8
black_speed[16]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; u8
white_speed[16]={0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,}; u8
street_right[16]={0XFF,0XFF,0X00,0XDB,0X18,0X18,0X18,0X18,0X18,0XFF,0X7E,0x3C,0x38,0x10,0x00,0x00,};
u8 num[10][6]={
{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, //
0
{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1 { 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2 { 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3 { 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4 { 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5 { 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6 { 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7 { 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8 { 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9 }; u8
coin[8]={0x18,0x3c,0x7e,0xff,0xff,0x7e,0x3c,0x18};
//更新新的一帧,是把矩阵数组更新下,像素点整体下移动一格
void update_fraps(void) {
u8 temp[128]; u8 temp_bit; uchar i,j;
for(i=0;i<128;i++) {
temp[i] = LCD[7][i] & 0x80; //最后一行像素需要保存下
if((LCD[6][i]&0x80) == 0x80) temp_bit=0x01;
else temp_bit=0x00;
LCD[7][i] = (LCD[7][i]<<1) | temp_bit; }
for(j=6;j>0;j--) {
for(i=0;i<128;i++) {
if((LCD[j-1][i]&0x80) == 0x80) temp_bit=0x01;
else temp_bit=0x00;
LCD[j][i] = (LCD[j][i]<<1) | temp_bit; } }