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

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

系統
小伙伴們久等了,在上一篇《【開發板試用】用OLED板實現FlappyBird小游戲(上)》中,我們本著拿來主義的原則,成功的讓小鳥在OLED屏幕上自由飛翔起來,下面我們將加入按鈕交互功能。

想了解更多內容,請訪問:
51CTO和華為官方合作共建的鴻蒙技術社區
https://harmonyos.51cto.com/#zz

小伙伴們久等了,在上一篇《【開發板試用】用OLED板實現FlappyBird小游戲(上)》中,我們本著拿來主義的原則,成功的讓小鳥在OLED屏幕上自由飛翔起來,下面我們將加入按鈕交互功能。

這里感謝唐佐林老師的無私分享,利用他開發的按鈕組件,開箱即用,節省了大量的開發時間(鏈接)。首先將按鈕組件的初始化函數InitButton搬到我們的主程序中,再寫一個按鈕事件回調函數Button_Callback,里面加入對邏輯的判斷和處理即可。

  1. //按鈕事件回調函數 
  2. static void Button_Callback(const char* sender, BtnEvent event) 
  3.     printf("[Button] Button_Callback() : %s -> %d\n", sender, event); 
  4.  
  5.     if( event == Pressed ) 
  6.     {  
  7.         /* Pressed == 1     按下事件處理代碼 */  
  8.         if(isStarted == 0) 
  9.         { 
  10.             BirdStart(); 
  11.         }else
  12.             BirdFlap(); 
  13.         } 
  14.     } 
  15.  
  16. //按鈕組件初始化 
  17. int InitButton(void) 
  18.     printf("InitButton\n"); 
  19.  
  20.     int ret = 0; 
  21.  
  22.     ret += DTButton_Init(); // 初始化按鍵事件處理上下文 
  23.  
  24.     /* 設置GPIO_8按鍵的回調函數,同時需要響應按下,釋放以及長按三個事件 */ 
  25.     /* 按鍵觸發順序: Pressed -> LongPressed(optional) -> Released */ 
  26.     ret += DTButton_Enable("GPIO_8", Button_Callback, Pressed | LongPressed | Released); 
  27.  
  28.     /* 設置S1按鍵的回調函數 */ 
  29.     ret += DTButton_Enable("S1", Button_Callback, Pressed); 
  30.  
  31.     printf("InitButton: %d\n", ret); 
  32.     return ret; 

 其中isStart是一個全局變量,定義在Bird.h中,作為游戲是否開始的標志。

由于加入了游戲標題界面,在按鈕按下時,這里有兩種情況,如果是在游戲標題界面中,則開始游戲,即調用BirdInit和BirdStart函數;如果已經在游戲中,則調用小鳥撲騰函數BirdFlap。而BirdFlap就做一件事情,把小鳥的垂直方向速度置為固定值。這個值我經過多次調優,最終固定在-3.5。

看這張圖能更容易理解坐標系和物體的運動:


其他的改進,包括右上角增加了一個分數指示器,具體就是用飛過的距離除以10得到。

相較第一篇,游戲流程基本沒有變化,增加的是按鈕的控制,由于使用了回調函數,即異步處理,代碼閱讀起來更友好也更簡潔。

下面是效果圖:


本來打算到此結束,后來一想其實還能做更多功能,比如聯網對戰?也歡迎大家留言告訴你的想法。

代碼奉上。

想了解更多內容,請訪問:
51CTO和華為官方合作共建的鴻蒙技術社區
https://harmonyos.51cto.com/#zz

 

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

2020-11-25 11:55:47

FlappyBird

2021-01-15 12:15:36

鴻蒙HarmonyOS游戲

2021-09-02 15:25:53

鴻蒙HarmonyOS應用

2020-11-27 11:52:40

OneNet

2020-11-26 12:02:07

OneNet平臺

2020-10-30 17:42:36

鴻蒙 OS Hi386

2020-11-17 12:15:36

MQTT開發

2020-10-20 09:32:43

HiSparkWi-FiIoT

2020-11-03 09:53:04

體驗官方固件程序

2020-12-11 12:45:04

鴻蒙Hi3861游戲

2020-12-29 09:59:01

鴻蒙HarmonyOS智能家居

2021-12-15 15:28:18

鴻蒙HarmonyOS應用

2021-09-08 15:44:56

鴻蒙HarmonyOS應用

2020-12-16 10:05:48

鴻蒙開發板Onenet平臺

2020-11-23 09:32:43

WIFI連接

2022-07-08 14:53:46

掃雷小游戲鴻蒙

2021-12-20 21:01:52

鴻蒙HarmonyOS應用

2020-12-09 09:44:29

Hi3861硬件介紹鴻蒙開發板

2020-10-23 09:50:15

HiSpark Wi-開發套件

2020-10-21 10:01:47

HiSpark Wi-智能家居套件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产小视频在线观看 | 成人精品一区 | 国产电影一区二区在线观看 | 欧美精品久久久久 | 午夜丰满少妇一级毛片 | 亚洲精品视频二区 | 日韩高清黄色 | 日本欧美国产 | 91麻豆精品国产91久久久更新资源速度超快 | 日韩性生活网 | 超碰地址 | 天堂在线中文 | 黄色免费网站在线看 | 九九综合九九 | 欧美二区在线 | 日本免费一区二区三区 | 在线播放中文字幕 | 免费久久99精品国产婷婷六月 | 国产一区二区三区在线 | 日韩av一区二区在线观看 | 91在线资源 | 精品久久久网站 | 久久久.com | 国产免费国产 | 欧美精品久久久久久久久久 | 欧美日韩综合 | 久久久久国产精品 | 成人免费视频在线观看 | 91视频播放| 国产视频在线观看一区二区三区 | 亚洲乱码一区二区三区在线观看 | 国产伊人精品 | 欧美一区二区网站 | 四虎在线观看 | 日韩成人免费视频 | 国家一级黄色片 | 免费黄色片在线观看 | 国产亚洲一区二区三区在线观看 | 国产视频一视频二 | 日韩国产黄色片 | 国产精品美女www爽爽爽视频 |