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

標題: STM32和0.96寸oled制作的貪吃蛇游戲源程序 [打印本頁]

作者: 我來過    時間: 2020-7-5 22:21
標題: STM32和0.96寸oled制作的貪吃蛇游戲源程序
前段時候在家沒事閑的沒事干,手里有個C8T6單片機和oled,就想著做個貪吃蛇,以前想著應該很復雜,做完后覺得只要理解了關鍵的地方,就很簡單,就if else if else就完事,哈哈。oled用的是4腳i2c的,基本的操作實現后發現最快的游戲速度也不是很快,所以編寫了速度選擇部分代碼也沒用,要是手里有能用spi驅動的7腳oled,應該能更快,目前就這樣。我在工程代碼里最開始寫了這個貪吃蛇的關鍵部分和一些其他東西,如下
上傳這個東東是為了分享一下,說不定能幫到別人(實際是想賺點幣,好下載其他東東,哈哈)。下面是具體的圖,左邊時游戲區,右邊是得分和游戲所用時間,控制方向用的是四個按鍵
   

做的這個東西所有有關的工程代碼里都有,oled引腳 按鍵引腳 邏輯判斷什么什么的,我覺得寫的還挺詳細,下面貼一段代碼,全部工程傳到附件。能力有限,代碼寫的不怎么好,但是整體是沒有什么BUG的。OK,完事(希望能賞點幣哈,哈哈)。

單片機源程序如下:
  1. int snake[20][8];  //用于存放蛇身位置數據
  2. int Snakehead[8];  //用于存放蛇頭位置數據
  3. int Snaketail[8];  //用于存放蛇尾位置數據
  4. int food[8];                          //食物位置數據     四個小格為一個食物 儲存順序順序為 上左  上右  下左 下右
  5. void Srand(void);

  6. void mapinit(void);  //初始化地圖
  7. void snakeinit(void);//初始化蛇位置
  8. void creatfoof(void);        //產生食物
  9. void contr(void);   //按鍵控制移動方向 定時器定時掃描  
  10. void move(void);                //移動        
  11. void eat(void);           //吃到食物
  12. void dispaly(void);          //顯示分數和步數
  13. void out(void);                        //游戲結束判斷
  14. void start(void);                //
  15. void Speed(void);                //速度選擇  暫時沒用到
  16. int up,dowm,left,right;
  17. char txt[10];
  18. int size=1; [attach]242723
  19. int Sped=2;  
  20. u8 adc;  //ADC采集數據做隨機種子
  21. u16 time=0; //所用時間
  22. int time_flag=0;  //開始計時表示 在定時器中計時
  23. int main()
  24. {
  25.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);   //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  26.         delay_init();
  27.         LED_Init();
  28.         keyinit();        
  29.         OLED_Init();
  30.         Adc_Init();
  31.         TIM3_Int_Init(200,7199);  //20ms一次
  32.         Srand();
  33.         mapinit();                //初始化地圖
  34.         snakeinit();        //初始化蛇頭位置
  35.         creatfoof();        //創建一個食物
  36.         up=dowm=left=right=0;            //初始化方向
  37.         while(1)
  38.         {
  39.                 Srand();        
  40.                 move();               
  41.                 eat();               
  42.                 dispaly();
  43.                 out();               
  44. //                Speed();
  45.         }
  46. }
復制代碼
制作出來的實物圖如下:

Screenshot_2020_0705_214232.png (733.63 KB, 下載次數: 91)

Screenshot_2020_0705_214232.png

Screenshot_2020_0705_214306.png (362.41 KB, 下載次數: 81)

Screenshot_2020_0705_214306.png

Screenshot_2020_0705_214241.png (602.75 KB, 下載次數: 86)

Screenshot_2020_0705_214241.png

貪吃蛇.7z

235.78 KB, 下載次數: 175, 下載積分: 黑幣 -5


作者: 凌程    時間: 2020-7-15 16:02
請問是32的板子嘛?
作者: 我來過    時間: 2020-8-4 18:27
凌程 發表于 2020-7-15 16:02
請問是32的板子嘛?

是的,f103c8t6
作者: fq2007    時間: 2020-8-27 16:52
最近在學習這個東東。本人深表感謝

作者: coooler    時間: 2020-12-15 20:37
大神。牛的
作者: lzg666    時間: 2020-12-16 23:49
樓主,有一處bug,隨機數會生成在地圖外面




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美精品三级 | 日韩在线资源 | 亚洲欧洲在线观看 | 精品久久一区二区 | 国产91页| 欧美日韩亚洲一区二区三区 | 福利视频一区二区 | 天天射影院 | 闷骚老干部cao个爽 欧美区一区二 | 黄色精品视频 | 91欧美大片 | 一区二区三区黄色 | 性欧美精品| 欧美日韩一区二区在线 | 欧美日韩综合网 | 精品国产一区二区在线观看 | 五月婷婷影院 | 成人网在线| 亚洲h网站| 中文字幕国产一区 | 欧美精品综合 | av网站观看 | 成人国产精品 | √8天堂资源地址中文在线 av网址在线免费观看 | 久久香蕉精品 | 成人高清在线 | aaa成人| 爱爱免费网站 | 欧美日韩在线精品 | 国产视频99 | 成年在线观看 | 久久国产精品免费 | 天天爽夜夜爽夜夜爽 | 亚洲成人av一区二区 | 一区二区三区四区在线播放 | 国产黄网| 亚洲欧美在线观看 | 欧美精品久久久久久久 | 亚洲国产欧美日韩在线 | 成人免费看片98欧美 | 欧美日韩国产在线观看 |