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

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

QQ登錄

只需一步,快速開始

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

STM32f103+OLED12864+按鍵做的貪吃蛇源碼

  [復(fù)制鏈接]
ID:259323 發(fā)表于 2018-9-4 21:48 | 顯示全部樓層 |閱讀模式
  剛開始學(xué)STM32,看到過網(wǎng)上有人用0.96寸OLED做過貪吃蛇游戲,于是自己也有了這樣一個(gè)想法,一開始確實(shí)遇到了很多麻煩,最主要的是畫出來的點(diǎn)總會(huì)被下一個(gè)點(diǎn)影響,然后開始翻數(shù)據(jù)手冊(cè),才發(fā)現(xiàn)一次要寫八個(gè)點(diǎn),之后在網(wǎng)上找了很多資料,這一個(gè)問題也終于解決了。下面來分享一下我做這個(gè)的一點(diǎn)經(jīng)驗(yàn)。
1.打點(diǎn)函數(shù)
   我們先建立一個(gè)8*128的二維數(shù)組,把屏幕上的每一個(gè)點(diǎn)都放進(jìn)這個(gè)數(shù)組里
2.蛇身建立
   屏幕上的點(diǎn)很小,很難看清楚,所以我們用4x4的區(qū)域來作為蛇身,蛇的身體用4x4中間挖去2x2的空心方塊表示,蛇頭用4x4的實(shí)心方塊表示,食物則用4x4方塊去掉四個(gè)角的點(diǎn)來表示,每一種圖形都用一個(gè)函數(shù)表示,因?yàn)檎麄(gè)游戲用了四種點(diǎn)來顯示所以才需要用上面的最小單位的點(diǎn)來組合。
3.蛇的移動(dòng)
   最簡單的一種就是添頭去尾,移動(dòng)的時(shí)候,以移動(dòng)的坐標(biāo)作為新坐標(biāo)畫出頭部,如果沒吃到食物則刪除尾部,吃到食物則保留尾部,每一段移動(dòng)后都以前一段的舊坐標(biāo)作為自己的新坐標(biāo)。為了實(shí)現(xiàn)這樣的移動(dòng),再建一個(gè)16bit的數(shù)組,高八位存x軸坐標(biāo),低八位存y軸坐標(biāo),用定時(shí)器每隔一段時(shí)間顯示這個(gè)數(shù)組的第一位和最后一位就能實(shí)現(xiàn)蛇的移動(dòng)。
4.邊界和蛇身判斷
  這個(gè)游戲是不能觸碰邊界和自身的,所以需要不斷檢測(cè)蛇頭坐標(biāo)是否越過邊界,為了檢測(cè)是否觸碰蛇身,就再建一個(gè)數(shù)組存放蛇身緩存,每移動(dòng)一次就將蛇身坐標(biāo)存到這個(gè)數(shù)組中,再判斷蛇頭是否碰到蛇身,判斷完就立刻清空數(shù)組。

制作出來的實(shí)物圖如下:
IMG_5105.JPG IMG_5095.JPG

stm32單片機(jī)源程序如下:
  1. #include "include.h"

  2. uint8_t CheckBuffer[420];//高八位放x坐標(biāo),低八位放y坐標(biāo)
  3. uint16_t MoveCoordinate[420];//高八位放x坐標(biāo),低八位放y坐標(biāo)
  4. uint8_t SnakeCoordinate[8][128];
  5. uint16_t SnakeLength;
  6. uint8_t SnakeCoordinate_x,SnakeCoordinate_y;
  7. uint8_t FoodCoordinate_x,FoodCoordinate_y;
  8. uint8_t MoveDirection;
  9. uint16_t Counter_x=166,Counter_y=1785;
  10. uint8_t runflag=0;

  11. int main(void)
  12. {         
  13.          Game_Start();
  14.    while(1)
  15.          {
  16.                    MoveDirection = KEY_Scan(1);
  17.                  
  18.                    while(MoveDirection==GAMEOVER)
  19.                          {
  20.                                   TIM_Cmd(TIM3,DISABLE);
  21.                                   OLED_Clear(0);
  22.                                   OLED_ShowString(32,0,"GAMEOVER");
  23.                                   OLED_ShowString(20,3,"SCORE:");
  24.                                   OLED_ShowNum(75,3,SnakeLength-3,4,16);
  25.                                   delay_ms(1000);
  26.                          }
  27.          }
  28. }
復(fù)制代碼

所有資料51hei提供下載:
貪吃蛇v2.7z (698.21 KB, 下載次數(shù): 346)

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:334374 發(fā)表于 2018-9-5 08:30 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí),樓主V5
回復(fù)

使用道具 舉報(bào)

ID:406761 發(fā)表于 2018-10-8 21:57 | 顯示全部樓層
感謝樓主的分享,我得研究一下,如果可以在帖子里直接分享下PCB圖就更好了
回復(fù)

使用道具 舉報(bào)

ID:409659 發(fā)表于 2018-10-14 22:41 | 顯示全部樓層
請(qǐng)問一下,為什么我燒進(jìn)去不好使呢?
回復(fù)

使用道具 舉報(bào)

ID:153917 發(fā)表于 2018-10-30 09:11 | 顯示全部樓層
真強(qiáng),這個(gè)代碼有難度!
回復(fù)

使用道具 舉報(bào)

ID:428094 發(fā)表于 2018-11-17 11:16 | 顯示全部樓層
謝謝分享,我來試試
回復(fù)

使用道具 舉報(bào)

ID:423055 發(fā)表于 2018-11-17 20:26 | 顯示全部樓層
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:232734 發(fā)表于 2018-12-28 12:26 | 顯示全部樓層
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:140906 發(fā)表于 2018-12-30 21:22 來自手機(jī) | 顯示全部樓層
請(qǐng)問只用到一個(gè)stm32開發(fā)板可以么,帶有LCD顯示屏的
回復(fù)

使用道具 舉報(bào)

ID:328121 發(fā)表于 2019-1-29 09:12 | 顯示全部樓層
樓主厲害,這么小屏都能做游戲
回復(fù)

使用道具 舉報(bào)

ID:337376 發(fā)表于 2019-2-3 23:05 | 顯示全部樓層
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:594206 發(fā)表于 2019-10-30 14:01 | 顯示全部樓層
請(qǐng)問這些io對(duì)應(yīng)要怎么接
回復(fù)

使用道具 舉報(bào)

ID:633837 發(fā)表于 2019-11-1 14:32 | 顯示全部樓層
這個(gè)可以搞個(gè)玩玩
回復(fù)

使用道具 舉報(bào)

ID:948441 發(fā)表于 2021-12-26 16:13 | 顯示全部樓層
一樣的板一樣的12864,為什么我按鍵控制不了方向??
回復(fù)

使用道具 舉報(bào)

ID:928177 發(fā)表于 2022-4-25 13:12 | 顯示全部樓層
學(xué)習(xí)單片機(jī)的好例程
回復(fù)

使用道具 舉報(bào)

ID:971289 發(fā)表于 2022-4-26 21:55 | 顯示全部樓層
學(xué)以致用了  好有樂趣
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜播放器在线观看 | 久久国产一区 | 久久久国产精品 | 欧美另类视频在线 | 久久aⅴ乱码一区二区三区 91综合网 | 亚洲黄色av | 人人叉 | 少妇特黄a一区二区三区88av | 一区二区三区四区在线视频 | 热久久国产 | 日韩美av | 欧美激情黄色 | 四虎影视1304t | 欧美一区二区综合 | 日韩成人在线视频 | 久久爱综合 | 精品网站999 | 国产91网站在线观看 | 国产精品国产精品国产专区不片 | 亚洲一区电影 | 在线观看特色大片免费网站 | 国产欧美精品一区二区色综合朱莉 | 中文字幕国产视频 | 男人的天堂在线视频 | 在线观看免费av网 | 国产精品精品视频一区二区三区 | 国产综合精品一区二区三区 | 涩涩视频大全 | 91香蕉视频在线观看 | 国产午夜精品一区二区三区嫩草 | 日韩视频 中文字幕 | 一级免费毛片 | 欧州一区二区三区 | 国产91丝袜 | 涩涩视频在线观看免费 | 国产精品亚洲成在人线 | 99国产精品久久久久老师 | 国产偷录视频叫床高潮对白 | 欧美天堂 | 日韩免费视频一区二区 | 国产综合精品一区二区三区 |