- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
【开发者说】重塑经典,如何在HarmonyOS手机上还
原贪吃蛇游戏
本文作者:
KirubaPradeep,TechLead,currentlybasedatLTTechnologyServices
本期我们为大家带来的是由印度开发者KirubaPradeep投稿的童年经典游戏,通过JS模
板在HarmonyOS手机上一步步开发呈现,简单有趣的小游戏demo,希望给你的
HarmonyOS开发之旅多一点启发。
贪吃蛇,一款经典的小游戏,勾起了多少人的童年回忆。小时候,我们在游戏中快乐玩耍,
现如今,让我们在开发中慢慢回溯吧!基于此,KirubaPradeep总结了一套开发贪吃蛇游
戏的要点秘诀,并在一行行代码中重塑经典。
在游戏中,玩家须通过导航按钮控制蛇的运动,以便吃掉随机出现的食物,来获得相应积分
并增加蛇身长度,当蛇发生碰撞或反向移动时,则游戏结束。首先,让我们一起梳理一下开
发的要点:
1)绘制固定组件:包括画布、导航按钮、得分栏等内容的绘制
2)设计动态组件:包括蛇体与食物的形状、大小、颜色的设计
3)动态规则:设定食物随机出现的位置,蛇的运动方式及形态
4)运行机制:当蛇消耗食物后,增加积分和蛇的长度,并绘制新的食物
5)违规判定:当蛇碰撞到自身或画布边缘,或者反向移动,则判定违规,提示用户“game
来源:HarmonyOS开发者微信号/s/v4Qy_42bCxE4rp1uaSXsyA
-2-
over”,并自动重新开始游戏
在正式开始敲代码之前,开发者们需要先下载安装HuaweiDevEcoStudio,如果对于这个
流程不甚熟悉,可以参照官网的教程操作。
·HuaweiDevEcoStudio安装指南:
/cn/docs/documentation/doc-guides/software_i
nstall-0000001053582415
请注意,本次demo主要针对逻辑梳理和要点讲解,限于篇幅长度不会展示完整代码,开
发者们可打开以下链接获取完整代码哦~
/harmonyos-developer/kaifazheshuo
下面我们就进入项目开发环节,逐一攻破以上要点,一起探寻贪吃蛇之旅:
创建项目
打开DevEcoStudio,创建新项目(NewProject),选择Phone设备,点击EmptyFeature
Ability(JS)模板,注意项目命名须不带中文或特殊字符(如此处的MyPhoneGame),最
后点击Finish。
来源:HarmonyOS开发者微信号/s/v4Qy_42bCxE4rp1uaSXsyA
-3-
项目创建后,我们先了解一下目录结构:
来源:HarmonyOS开发者微信号/s/v4Qy_42bCxE4rp1uaSXsyA
-4-
index.hml文件:描述页面布局
index.css文件:描述页面样式
index.js文件:处理页面和用户之间的交互
app.js文件:管理全局JavaScript逻辑和应用程序生命周期
来源:HarmonyOS开发者微信号/s/v4Qy_42bCxE4rp1uaSXsyA
-5-
pages目录:存储所有组件页面
java目录:存放与项目相关的java文件
其中,app.js文件、pages目录和java目录内容均由JS模板自动提供。
1)绘制固定组件
①绘制画布,在index.hml文件中,设定画布的颜色和尺寸;
index.hml
divclass=containeronswipe=touchMove
textclass=titleSnakeGame/text
canvasref=canvasrefstyle=width:600px;height:
文档评论(0)