[文章]体验Hi3861开发版的太空人避障游戏

阅读量0
0
0


8月23日,OpenHarmony代码仓新上线了一个运行在Hi3861 WLAN模组上的小游戏程序,同时上线还有“分布式搜索”,“分布式购物车”,“井字过三关”三款分布式应用开发程序。我们来体验一下运行在Hi3861上的“太空人避障游戏”。
准备
1.开发环境: Windows + DevEco Device Tool2.2 Beta1,参考官网Windows开发环境准备Windows平台源码编译
2.源码框架: OpenHarmony 2.0 Canary
3.硬件: HiSpark Wi-Fi IoT 开发套件的 主控板 + 底板 + OLED拓展板 + 带蜂鸣器的交通灯板,装配好如图所示。

工程
  • 下载代码
    https://gitee.com/openharmony/app_samples/tree/master/CompleteApps/AstronautsGame
  • 将解压后 app_samples-master/CompleteApps/AstronautsGame 下的astronauts_game和common两个文件夹复制到OpenHarmony 系统源码中的applications/sample/wifi-iot/app目录下。
  • 修改applications/sample/wifi-iot/app/BUILD.gn 文件,使astronauts_game模块参与编译。添加deps = [ “//applications/sample/wifi-iot/app/common/hals:hals” ],如下:
  1. import("//build/lite/config/component/lite_component.gni")
  2.    
  3.     lite_component("app") {
  4.     features = [
  5.         "astronauts_game",
  6.     ]
  7.     deps = [ "//applications/sample/wifi-iot/app/common/hals:hals" ]
  8. }
复制代码

  • 游戏中OLED显示要用到I2C功能,音效要使用PWM驱动蜂鸣器,系统源码OpenHarmony 2.0 Canary默认I2C和PWM是关闭的,如果首次使用,请打开 device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk 文件,修改hi3861 内核配置。
    将 CONFIG_I2C_SUPPORT is not set这一行, 改为CONFIG_I2C_SUPPORT=y
    将 CONFIG_PWM_SUPPORT is not set这一行, 改为CONFIG_PWM_SUPPORT=y
  • 完成后保存,在PROJECT TASKS中,点击工程的“Clean”按钮,然后编译,烧录,就可以试用了。
使用
  • 上电后进入游戏初始界面,按下开发板中的user按键开始游戏。
  • 使用OLED拓展板上的按键1、按键2左右移动来躲避随机落下的障碍物。
  • 屏幕右上角会记录得分,难度会随着分数的增加而提高。
  • 如果碰撞到障碍物和OLED屏左右末端,则游戏结束。
  • 按下user按键重新开始游戏。

改进
试用后,编译烧录顺利,游戏功能正常。唯独交通灯板的黄灯常亮,查程序中并无对黄灯的控制代码,可以在music.c中增加少量代码,把黄灯关闭。
  1. void StartBeepMusicTask(void)
  2. {
  3.     IoTGpioInit(12);
  4.     HalIoSetFunc(12, 0);
  5.     IoTGpioSetDir(12,IOT_GPIO_DIR_OUT);
  6.     IoTGpioSetOutputVal(12,0);
复制代码

重新编译烧录后,消除了黄灯常亮的现象


回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友