赞
踩
本文由我和@WiKiBeta共同完成,也是我们第一次接触HarmonyOS,对OS了解的越多,越觉得开发OS是一件不简单的事,开发APP只是其中的一部分,背后的工程实在是有点超出想象。这次我们通过对张荣超老师课程(课程链接)的学习,我们对如何使用IDE开发HOS中的APP有了一定的理解,以下是我们学习完成后写下的笔记,如果有纰漏,希望各位谅解并指出。
本次课程目标是开发能在鸿蒙设备上运行的经典小游戏2048,本次学习实现的功能主要有:1.实现页面布局 2.在画布上显示所有的格子以及格子里的数字 3. 页面初始化时随机选择两个格子,并放入2或4。本次课程中,未完整实现的响应滑动事件功能将在以后的学习笔记中进行补充。(课程使用的开发软件为DevEco Studio, 语言为JavaScript).
华为HarmonyOS的应用开发工具DevEco Studio下载地址
node.js下载地址
1. 实现页面布局
效果如下
效果如下
随机选择两个格子,并放入2或4:
效果如下:
hml
<div class="container"> <text class="scores"> 最高分:{ { bestScores}}//将bestScores与最高分动态绑定,即bestScores可变 </text> <text class="scores"> 当前分:{ { currentScores}}//cunrrentScores与最高分动态绑定,即bestScores可变 </text> <stack class="stack"> <canvas class="canvas" ref="canvas" onswipe="swipeGrids"> //定义canvas组件,类为canvas,ref指向canvas对象实例,onswipe指向“滑动”这一事件 </canvas> <div class="subcontainer" show="{ {isShow}}"> <text class="gameover"> 游戏结束 </text> </div> </stack> <input type="button" value="重新开始" class="btn" onclick="restartGame"/>//输入一个组件input,定义种类为button以显示一个按钮,value即按钮上将显示的文本,类定义为btn </div>//以上就定义了我们有哪些组件
css
.container { //整个界面的基本布局 flex-direction: column;//将界面中的组件竖向排列 width: 454px; height: 454px; justify-content: center;//justify-content 用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式,使其中心化 align-items: center;//align-content 属性对齐交叉轴上的各项(垂直),这里使其中心化 } .scores { width: 300px; height:20px; font-size: 18px; text-align: center; letter-spacing: 0px;//使类为scores的元素排列的更加紧凑 margin-top: 10px;//在类为scores的元素周围设置10px的外边距 } .stack{ width: 305px; height: 305px; margin-top: 10px; } .canvas{ width:305px; height:305px; background-color: #BBADA0;//背景色,16进制 } .subcontainer { width: 305px; height: 305px; justify-content: center; align-items: center; background-color: transparent; } .gameover { font-size: 38px; color: black; } .btn{ width:150px; height:30px; background-color: #AD9D8F; font-size: 24px; margin-top: 10px; }
js
var grids;//设置变量grids
var context;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。