成人免费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-11-03 09:53:04

體驗官方固件程序

2020-10-20 09:32:43

HiSparkWi-FiIoT

2020-12-29 09:59:01

鴻蒙HarmonyOS智能家居

2020-12-11 12:45:04

鴻蒙Hi3861游戲

2021-09-08 15:44:56

鴻蒙HarmonyOS應用

2021-12-15 15:28:18

鴻蒙HarmonyOS應用

2020-11-23 09:32:43

WIFI連接

2020-12-16 10:05:48

鴻蒙開發板Onenet平臺

2021-12-20 21:01:52

鴻蒙HarmonyOS應用

2022-07-08 14:53:46

掃雷小游戲鴻蒙

2021-01-07 11:24:51

鴻蒙HarmonyOS音樂

2020-12-09 09:44:29

Hi3861硬件介紹鴻蒙開發板

2021-12-30 16:12:07

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久久亚洲综合网 | 国产精品高潮呻吟久久 | 最新av中文字幕 | 午夜视频在线观看网址 | 日韩在线观看精品 | 九九爱这里只有精品 | 中文字幕日韩欧美一区二区三区 | 久久国产亚洲 | 久久最新精品 | 欧美一区二区三区四区视频 | 中文字幕欧美一区 | 成人小视频在线免费观看 | 正在播放一区二区 | 影音先锋欧美资源 | 久久精品97 | 久色网| 中文字幕不卡在线88 | 日韩成人在线观看 | 亚洲精品成人免费 | 欧美片网站免费 | 欧美黑人体内she精在线观看 | 国产精品一区在线 | 韩日免费视频 | 欧美精品一区二区三区在线 | 国产精品毛片一区二区在线看 | 91就要激情 | 亚洲免费婷婷 | 日韩欧美专区 | 中文字幕一二三区 | 中文成人无字幕乱码精品 | 日韩一区二区av | 日本特黄特色aaa大片免费 | 欧美精品v | 亚洲二区视频 | 国产精品一区在线 | 99精品视频免费观看 | 一区二区三区视频 | 国产成人99久久亚洲综合精品 | 91视视频在线观看入口直接观看 | 国产精品福利视频 | 81精品国产乱码久久久久久 |