自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【鴻蒙開發(fā)板試用報(bào)告】用OLED板實(shí)現(xiàn)FlappyBird小游戲(上)

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

[[354024]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

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

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

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

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

梳理一下主循環(huán)的流程,如圖:


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

  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可以輕松搞定。

這里小鳥只做了一幀,以后或許可以做成多幀動(dòng)畫效果。煙囪則是一個(gè)head和一段重復(fù)的body構(gòu)成,以節(jié)約內(nèi)存。

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

[[354027]]

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

想了解更多內(nèi)容,請(qǐng)?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

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

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

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開發(fā)

2020-11-27 11:52:40

OneNet

2020-11-26 12:02:07

OneNet平臺(tái)

2020-11-03 09:53:04

體驗(yàn)官方固件程序

2020-10-21 10:01:47

HiSpark Wi-智能家居套件

2020-10-20 09:32:43

HiSparkWi-FiIoT

2020-11-23 09:32:43

WIFI連接

2020-12-09 09:44:29

Hi3861硬件介紹鴻蒙開發(fā)板

2021-09-02 15:25:53

鴻蒙HarmonyOS應(yīng)用

2020-10-23 09:50:15

HiSpark Wi-開發(fā)套件

2020-10-29 09:53:06

Hi3861硬件開發(fā)板

2020-11-11 10:06:15

鴻蒙

2021-01-28 14:46:29

鴻蒙HarmonyOS應(yīng)用開發(fā)

2020-12-31 12:22:15

鴻蒙Hi3861應(yīng)用開發(fā)

2020-10-26 10:21:39

Wi-Fi IoT智能家居套件

2020-11-04 13:20:14

HiSpark

2009-02-13 09:19:23

試用報(bào)告MoonlightSilverlight
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)