久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2746|回復(fù): 0
收起左側(cè)

基于CH32V103的酷跑類小游戲的升級(jí)改造

[復(fù)制鏈接]
ID:776997 發(fā)表于 2020-11-22 23:10 | 顯示全部樓層 |閱讀模式
最近見(jiàn)網(wǎng)友們對(duì)跑酷類小游戲的興趣正濃,便不免也想來(lái)湊個(gè)熱鬧,以前它是在單色OLED屏上實(shí)現(xiàn)的,于是便用手頭的單色屏看來(lái)了一下效果,見(jiàn)圖1和圖2所示。
                              
1.jpg
1 跳躍障礙中

2.jpg
2 游戲結(jié)束

可能是屏幕的分辨率相對(duì)較小吧,游戲的界面顯示的不太完整,于是將顯示屏換成了手頭分辨率相對(duì)高一點(diǎn)的雙色OLED屏。
更換后,其顯示效果如圖3和圖4所示,是不是效果明顯提高了許多?
3.jpg
3 跳躍障礙中

4.jpg
4 游戲結(jié)束

為了游戲在整體上更完整,又使用漢字顯示函數(shù)為游戲添加了封面效果。
提取字模所用的工具軟件為PCtoLCD2002,見(jiàn)圖5所示,完成后的界面如圖6所示。
5.jpg
5 提取字模

6.jpg
6 游戲封面

興之所至,不免覺(jué)得在哪些地方還是尚有不足的地方,在哪里?
有了色彩,有了游戲情節(jié),還缺啥?
背景音樂(lè)唄!
要添加背景音樂(lè)這不難,咱有MP3播放模塊呀!
只是缺少,合適的游戲類背景音樂(lè),那就只好用歌曲來(lái)臨時(shí)將就吧。
要添加背景音樂(lè),完全不影響游戲的流暢性,因?yàn)?/font>MP3播放模塊是靠串行通訊的指令來(lái)控制,MP3音樂(lè)的播放與游戲的運(yùn)行完全是并行的,可謂是井水、河水各不相犯。
CH32V1033個(gè)串口可供使用,選哪個(gè)來(lái)用呢?
從方便性來(lái)講,還是使用串口1比較方便,因?yàn)榇?/font>1原本就是來(lái)供調(diào)試之用,既能輕松地輸出字符串,也能方便地發(fā)送字節(jié)數(shù)據(jù)。
MP3播放模塊的引腳排列如圖7所示,其實(shí)除了電源引腳之外,真正要用的引腳是在有限。
SPK_1SPK_2是連接喇叭的,RX是用來(lái)接收串口指令的,BUSY是指示MP3模塊是否處于播放狀態(tài),而IO_2是觸發(fā)播放下一首歌曲。
7.jpg
圖7  模塊引腳排列

其實(shí),但從配置背景音樂(lè)的角度講,只需1個(gè)I/O口即可,也就是在游戲開(kāi)始后觸發(fā)音樂(lè)播放。
而之所以選用串口控制是因?yàn)椋劝存I控制模式在功能上更豐富,有利于游戲功能的進(jìn)一步擴(kuò)展。
例如,在串口控制模式下,當(dāng)游戲結(jié)束時(shí)可以通過(guò)指令關(guān)閉背景音樂(lè);當(dāng)游戲通關(guān)后,可以通過(guò)指令更好背景音樂(lè)等,這是鍵控模式所不能企及的。
實(shí)現(xiàn)游戲功能的主程序?yàn)椋?/font>
  1. int main(void)
  2. {
  3. uint8_t i;
  4. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  5. Delay_Init();
  6. //USART1  A.9 A.10
  7. USART_Printf_Init(9600);
  8. TIM3_Int_Init(359, 199);
  9. TIM_Cmd(TIM3, DISABLE); //TIM3
  10. Touch_Key_Init();
  11. OLED_Init();              //初始化OLED
  12. OLED_Clear();
  13. //顯示游戲名稱
  14. OLED_ShowCHinese(5,1,1);
  15. OLED_ShowCHinese(21,1,0);
  16. OLED_ShowCHinese(37,1,2);
  17. OLED_ShowCHinese(53,1,3);
  18. OLED_ShowCHinese(69,1,4);
  19. OLED_ShowCHinese(85,1,5);
  20. //音量設(shè)置
  21. setVolume(26);
  22. for(i=0;i<10;i++)
  23. {
  24. while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
  25. USART_SendData(USART1, cmd6[i]);
  26. }
  27. Delay_Ms(200);
  28. //歌曲設(shè)置
  29. playn(2);
  30. for(i=0;i<10;i++)
  31. {
  32. while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
  33. USART_SendData(USART1, cmd3[i]);
  34. }
  35. Delay_Ms(1000);
  36. while(1)
  37. {
  38. KeyScan();
  39. if(start_flag == 1)
  40. {
  41. OLED_ShowLine(0, 3, 128, data_ob);
  42. OLED_ShowPeople(30, start_jump, 3, start_jump_flag);
  43. show_num();
  44. game_over();
  45. }
  46. else if(start_flag == 2)
  47. {
  48. OLED_ShowString(24,1,"GAME OVER",9);
  49. start_flag = 0;
  50. for(i=0;i<10;i++)
  51. {
  52. while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
  53. USART_SendData(USART1, cmd5[i]);
  54. }
  55. }
  56. }
  57. }
復(fù)制代碼
完成游戲功能的整體構(gòu)成如圖8所示,所使用的存儲(chǔ)卡則是512MBT卡。
8.jpg
8 游戲封面

既然雙色OLED屏能提升游戲的效果,那換做彩色屏呢,是不是又能產(chǎn)生出新的契機(jī)呢?有時(shí)間的話,不妨一試。

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩三区 | 精品欧美| 免费h视频 | 亚洲男人天堂网 | 中国人pornoxxx麻豆 | 国产在线观看一区二区 | 日本精品一区二区三区在线观看 | 人人干人人玩 | 欧美黄色大片在线观看 | 精品一区二区免费视频 | 久久久一区二区三区 | 久久久噜噜噜www成人网 | 综合久| 久久www免费视频 | 天堂资源最新在线 | 国产精品性做久久久久久 | 91国产在线播放 | 久久久精品 | 在线啊v | 精品在线一区 | av免费网站在线观看 | 亚洲精品久久久一区二区三区 | 国产精品视频久久久久 | 国产乱码精品一区二区三区中文 | 精品自拍视频在线观看 | 一本久久a久久精品亚洲 | 成年人黄色一级毛片 | 一区二区三区四区在线 | 综合网视频 | 免费国产一区 | 日本成人午夜影院 | 亚洲乱码一区二区 | 亚洲精品久久久久久国产精华液 | 中国免费黄色片 | 精品久久久久久亚洲精品 | 7777在线视频 | 国产精品久久视频 | 日韩欧美国产精品 | 国产欧美在线一区二区 | 国产精品久久久99 | 亚洲精品一区二区三区中文字幕 |