一、鸿蒙HarmonyOS分布式小车游戏Demo详情
此应用是一个基于HarmonyOS的软件和硬件相结合的控制小车的小游戏应用。手机端APP用于控制鸿蒙小车,鸿蒙小车端被控制。使用了两部P40手机,两辆HI3861鸿蒙小车,可以单独使用一部手机控制任何一辆鸿蒙小车,称为单人模式,也可以两部手机各控制一辆鸿蒙小车进行比赛,称为对战模式。
二、小车对战APP使用说明
鸿蒙小车的连接和配网步骤:
首先是启动鸿蒙小车,按下user键,小车会开启一个WiFI热点。控制端手机成功连接该WiFi热点后,鸿蒙小车会把热点名字显示在OLED屏幕上:
然后打开手机APP,手机APP使用纯鸿蒙API开发,打开应用后有背景音效:
在单人模式下,进入APP首页选择“单人”,会进入到选择小车的页面,通过左右滑动来选择对应编号的小车,也就是说手机可以控制任何一辆鸿蒙小车,:
选定后小车后,再给选择好的鸿蒙小车配置第三方WiFi热点,输入WiFi名和密码。小车会根据输入的WiFi名和密码连接上对应的WiFi,同时小车会关闭自身WiFi热点。此时,控制端手机会回退到原本链接的WiFi(需要与鸿蒙小车连接在同一WiFi)。这样多部手机和多个小车都连上指定的热点,多设备间就可以利用鸿蒙分布式特性进行交互数据了:
完成配网后,小车会将自己的IP地址显示到OLED屏幕上:
有了鸿蒙小车的IP地址,在手机APP中上输入这个IP地址,接下来就可以用手机控制鸿蒙小车运动了:
APP控制界面说明:
左下角绿色按钮,模拟油门,按下它小车开始前跑;
上面的红色按钮为停止;
右方的上下左右:上为加速,下为后退,左右分别是左转和右转;
右方的按钮必须同时按下油门,并且都不抬起才能生效,需要用到多点触控。
对战模式
手机使用了鸿蒙特有的分布式数据库进行不同手机间的数据实时共享,利用分布式数据库,在对战模式下,比如:A手机选择了编号28882号小车,B手机能马上得到弹框通知,避免选冲突,在下次进入后,由于分布式数据库已经记住了对战模式下各自的选择,页面将屏蔽掉对手已经选择的小车。
比赛结果同样使用的是分布式数据库保存,并且对分布式数据库实时监控。对战模式下,参赛小车中任何一辆率先到达终点,小车下的传感器将感应到终点线,继而向手机APP发送自己的小车编号,手机收到编号立即判断那个小车获取胜利,并且在所有参赛手机上弹出信息,通报胜利者,并且停止所有参赛小车的行进。
三、设计思路
手机端设计思路:
小车端设计思路:
项目源代码见下面附件!
https://harmonyos.51cto.com/posts/4776