成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【鴻蒙開發板試用報告】用OLED板實現FlappyBird小游戲(上)

系統
總是做各種Demo,是時候做個什么小應用來練練手了。躊躇了很久,果然還是搞個小游戲才有意思。想到幾年前風靡全球的FlappyBird,一個屏幕一個按鈕就足夠了,正好適合。OLED屏幕、按鍵的驅動已經有大牛們發布了,拿來用就可以。游戲邏輯什么的,用C語言實現也不是什么難事。主要目的就是要驗證一下HarmonyOS復雜界面即時交互應用可行性

[[354024]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

總是做各種Demo,是時候做個什么小應用來練練手了。躊躇了很久,果然還是搞個小游戲才有意思。想到幾年前風靡全球的FlappyBird,一個屏幕一個按鈕就足夠了,正好適合。OLED屏幕、按鍵的驅動已經有大牛們發布了,拿來用就可以。游戲邏輯什么的,用C語言實現也不是什么難事。主要目的就是要驗證一下HarmonyOS復雜界面即時交互應用可行性。

這一篇我們主要解決屏幕繪制的問題,下一篇文章將把剩余的部分介紹完。

我們需要用變量記錄小鳥的Y坐標、垂直速度、各個煙囪的位置、方向等數據,然后在主循環中不斷更新他們,再渲染到屏幕上。

梳理一下主循環的流程,如圖:


OLED的驅動,我使用了SiWei Xu老師的代碼(Source地址)。對于BirdDrawScreen的部分,我們需要解決一個問題,那就是在渲染每一幀時,清空屏幕,然后在屏幕指定的位置繪制圖片。為此,我自己寫了一個函數ssd1306_DrawBitmapAtPosition,通過參數xo, yo指定要繪制的位置坐標。

  1. void ssd1306_DrawBitmapAtPosition(const uint8_t* bitmap, uint8_t width, uint8_t height, int8_t xo, int8_t yo) 
  2.  
  3.  
  4. for (uint8_t y = 0; y < height; y++) { 
  5.  
  6. if (yo + y > SSD1306_HEIGHT || yo + y < 0) continue
  7.  
  8. for (uint8_t x = 0; x < width; x++) { 
  9.  
  10. if (xo + x > SSD1306_WIDTH || xo + x < 0) continue
  11.  
  12. uint8_t byte = bitmap[(y * width / 8) + (x / 8)]; 
  13.  
  14. uint8_t bit = byte & (0x80 >> (x % 8)); 
  15.  
  16. ssd1306_DrawPixel(xo + x, yo + y, bit ? White : Black); 
  17.  
  18.  
  19.  

 小鳥和煙囪的圖片代碼,先用畫圖做好,再通過img2code.py可以輕松搞定。

這里小鳥只做了一幀,以后或許可以做成多幀動畫效果。煙囪則是一個head和一段重復的body構成,以節約內存。

游戲邏輯沒什么難點,主要就是小鳥有重力加速度,煙囪的隨機生成、以固定速度移動并循環過場,碰撞檢測等等。后面的文章會放出代碼。上圖:

[[354027]]

下一篇,我們將加入按鈕事件,控制小鳥的飛行。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2020-12-02 11:55:40

OLED

2021-01-15 12:15:36

鴻蒙HarmonyOS游戲

2020-10-30 17:42:36

鴻蒙 OS Hi386

2020-11-17 12:15:36

MQTT開發

2020-11-27 11:52:40

OneNet

2020-11-26 12:02:07

OneNet平臺

2020-11-03 09:53:04

體驗官方固件程序

2020-10-21 10:01:47

HiSpark Wi-智能家居套件

2020-10-20 09:32:43

HiSparkWi-FiIoT

2020-11-23 09:32:43

WIFI連接

2021-09-02 15:25:53

鴻蒙HarmonyOS應用

2020-12-09 09:44:29

Hi3861硬件介紹鴻蒙開發板

2020-10-23 09:50:15

HiSpark Wi-開發套件

2020-10-29 09:53:06

Hi3861硬件開發板

2020-11-11 10:06:15

鴻蒙

2021-01-28 14:46:29

鴻蒙HarmonyOS應用開發

2020-12-31 12:22:15

鴻蒙Hi3861應用開發

2020-10-26 10:21:39

Wi-Fi IoT智能家居套件

2020-11-04 13:20:14

HiSpark

2009-02-13 09:19:23

試用報告MoonlightSilverlight
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人1区2区 | 国产精品一区在线观看 | 超碰在线97国产 | 欧美性大战久久久久久久蜜臀 | 一区二区三区中文字幕 | 国产91在线观看 | 亚洲网站在线 | 一级黄色片毛片 | 日韩欧美在线视频 | 中文字幕1区 | www.青青草 | 欧美一卡二卡在线观看 | 一区二区av在线 | 国产玖玖| 亚洲欧美在线一区 | 亚洲国产成人在线视频 | 国产精品亚洲第一区在线暖暖韩国 | 中文一区| 中文字幕在线观看第一页 | 国产九九九九 | 影音av| 欧美一区二区 | 国产一区二区电影 | 久久99久久99精品免视看婷婷 | 亚洲欧美一区在线 | 国产一区久久久 | 最新中文字幕在线 | 日韩精彩视频 | 婷婷综合久久 | 波多野结衣中文字幕一区二区三区 | 精品视频一区二区三区在线观看 | 精品国产一区二区三区性色av | 在线观看视频91 | 成人免费视频网 | 久久免费视频网 | 99久久免费精品国产免费高清 | 亚洲精品国产成人 | 欧美一级久久 | 久久久久国产一区二区三区 | 久久综合av | 中文字幕在线免费观看 |