本游戏是关于俄罗斯方块的小游戏,游戏功能基本实现了网络上的俄罗斯方块的游戏的大部分内容,初学者可以看看。
stm32单片机源程序如下:
- /* 使用JLINK下载程序后显示开机图片,当按下K_UP后进入游戏
- 主界面,指示灯D1闪烁表示程序正常运行,按照LCD上指示对按键进行操作控制*/
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "button.h"
- #include "lcd_driver.h"
- #include "gui.h"
- #include "tim.h"
- #include "tetris.h"
- void GUI_DisplayInit(void)
- {
- GUI_ShowPicture(0, 0, 240, 320);
- }
- int main(void)
- {
- u8 i;
- delay_init();
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- led_init();
- button_init();
- TFT_Init();
- TFT_ClearScreen(GREEN);
- GUI_DisplayInit();
- TIM4_Init(10,7199);
- while(key!= K_UP_PRESS) //等待按键K_UP按下
- {
- GUI_Show12ASCII(20,10,"Press K_UP key to Enter...",RED,WHITE);
- delay_ms(200);
- GUI_Show12ASCII(20,10," ",RED,WHITE);
- delay_ms(200);
- }
- TIM_Cmd(TIM4, DISABLE); //失能TIMx
- uart_init(9600);
- score_buf[0]=Game.score/100000+0x30;
- score_buf[1]=Game.score%100000/10000+0x30;
- score_buf[2]=Game.score%100000%10000/1000+0x30;
- score_buf[3]=Game.score%100000%10000%1000/100+0x30;
- score_buf[4]=Game.score%100000%10000%1000%100/10+0x30;
- score_buf[5]=Game.score%100000%10000%1000%100%10+0x30;
- score_buf[6]='\0';
- level_buf[0]=Game.level/100+0x30;
- level_buf[1]=Game.level%100/10+0x30;
- level_buf[2]=Game.level%100%10+0x30;
- level_buf[3]='\0';
- Show_TetrisFace();
- Start_Game();
- TIM3_Init(5000,7199);
-
- while(1)
- {
- key=keyscan(1);
- switch(key)
- {
- case K_LEFT_PRESS:MoveLeft();break;
- case K_RIGHT_PRESS:MoveRight();break;
- case K_DOWN_PRESS:DownFast();break;
- case K_UP_PRESS:Transform();break;
- // case RESET:ResetGame();break;
- default :
- break;
- }
- i++;
- if(i==15)
- {
- i=0;
- led0=~led0;
- }
- delay_ms(10);
- }
- }
复制代码
所有资料51hei提供下载:
俄罗斯方块游戏.7z
(442.06 KB, 下载次数: 128)
|