了解更多开源请访问:开源基础软件社区https://ost.51cto.com前言参赛项目基于openHarmony开发的北向应用-少儿语言文化教育APP。从立项到形成第一个版本再到参加比赛,一路上遇到了很多困难,也从团队合作、产品迭代、技术等方面学到了很多宝贵的经验。感谢经过团队成员和UI设计团队的努力与配合,在比赛截止日期前完成了产品的基本功能,获得三等奖。虽然比赛已经结束,但我们会继续朝着最终的产品努力。目标问题及意义价值解决联合国17项可持续发展目标中的问题目标4:优质教育意义价值在当今数字经济时代,为给幼儿提供优质的文化素质教育,针对7-16岁的儿童。基于openHarmony,我们开发了一款游戏互动教育APP,为他们提供一个以英语和其他语言为主的文化教育平台。项目介绍演示:演示视频:解学生挑战-游戏互动少儿语言文化教育APPgitee仓库:代码仓库APP部分页面展示:1.应用场景在家庭,孩子可以使用搭载OpenHarmony的家长手机和各类智慧屏设备,可以方便快捷地进行沉浸式学习。在车上,您可以打开APP听歌或播放动画视频,了解世界民俗文化。通过OpenHarmony的分布式特性,APP还支持多人学习和互动。多设备场景下,一方创建关卡,另一方答题打分,更有趣,互动性更强。2.应用架构整体架构图应用分为学习突破版块、文化娱乐版块、游戏激励版块。应用程序的前端界面采用类Web开发的js框架开发。产品内容丰富后,可以配合后台数据库和服务器,为用户呈现一个集互动游戏+教育功能于一体的教育APP。学习闯关部分(一)单机游戏闯关:目前APP拥有词汇、听力、语法三个学习闯关模块。每个模块都有自己的闯关地图,用户需要在推荐关卡中从零开始过关,才能解锁更多关卡。(2)多人互动关卡:基于鸿蒙的分布式能力,APP将支持任意关卡中的多个关卡。多人关卡分为PK模式和单程模式。具体操作方法为:一方作为出题者,设置通关分数和题目,可以从题库中选题,也可以自己出题;对方作为答题方,按照透传模块的规则进行答题。回答完问题后,如果是单向模式,则根据分数判断是否过关;如果是PK模式,双方交换位置,比较最后的比分。如果分数较高,将获得游戏币。文化娱乐板块(1)趣味形象互动:基于一个人物形象IP(类似APP:会说话的汤姆猫),为其添加丰富的互动动画。主要技术点:canvas组件及相关API,使用canvas和timer实现动画动画播放的效果;结合离屏渲染接口(offscreen)提前绘制图片,然后按需渲染,大大提高了动画播放的流畅度。varoffscreen=newOffscreenCanvas(w,h);//---离屏画布的宽度和高度w,hvaroffscreenCanvasCtx=offscreen.getContext("2d");offscreenCanvasCtx.drawImage(img,obj.x,obj.y,w,h);bitmap=offscreen.transferToImageBitmap();//---将绘制的图片转换成位图数据并保存list.push(bitmap)//---一张图片对应一个位图对象,多张图片对应一个action(数组)具体实现原理请教参考代码仓库。App首页展示:(2)以寓教于乐的方式构建世界文化观:用户(儿童)在学习词汇、语法等时,文字和图像会进行互动,输出相应的文化知识。游戏激励部分(1)建立学习奖励机制:在任务和成就等模块中,有任务奖励和成就奖励。每当用户(孩子)在教育版块完成相应的学习内容,系统就会给予奖励(以游戏币、服装、道具等形式),更好地激发孩子主动学习的兴趣。(2)以图激励学习:用户(儿童)通过闯关、答题赢取游戏币。游戏币可以用来在商城里用衣服和物品换取图片,或者通过越级解锁关卡。此外,IP形象将跟随用户(儿童)不断闯关、答题,从幼稚状态到成人状态,解锁场景,共同成长,让孩子有一种陪伴感。UI交互设计画布动效展示:人物形象动画如上图所示,主界面显示人物形象。我们为其添加丰富的动作动画,并为其绑定相应的事件,使其具有与用户交互的能力。具体展示:SolutionStudentChallenge——游戏互动少儿语言文化教育APP。各种图标由UI人员设计,并在图标上添加了点击、拖动等触屏事件。游戏突破模式设计我们为学习突破部分设计了一系列交互:实现的“词汇突破”动效开发与实现,包括:气球升起动画气球和置顶定时器的暂停和重启,详细代码说明不在这里显示,但可以在代码仓库中查看,这里解释的比较详细。分布式交互架构亲子互动解决方案:多设备全场景时代,家长可以在搭载鸿蒙OS的设备上实现与孩子的教育互动。相互通信能力和分布式数据库在孩子的设备上同步它,让孩子进行实时拼写测试。利用分布式调度、中转、数据库等分布式软总线能力,实现亲子教育交互。可惜这个想法在比赛的时候没有完全完成,鸿蒙的分布式特性也没有完全展现给大家,以后有时间再补上。结语这是我和队友第一次参加鸿蒙相关的比赛。在比赛过程中,我们也逐步尝试修复错误和扩展功能。虽然提交的产品还有很多不足之处,但我还是收获了很多宝贵的经验。了解更多开源知识,请访问:开源基础软件社区https://ost.51cto.com。
