HarmonyOS实战开发教程-如何开发一个2048游戏

652 篇文章 4 订阅
647 篇文章 6 订阅

今天为大家分享的是2048小游戏,先看效果图:
在这里插入图片描述
这个项目对于新手友友来说可能有一点难度,但是只要坚持看完一定会有收获。因为小编想分享的并不局限于ArkTs语言,而是编程思想。

这个游戏的基本逻辑是初始化一个4乘4的数组,值全部为空。游戏开始时,因为所有元素都是空的,所以随机抽取2个元素赋值2。这里以(1,3)和(2,2)两个位置的元素为例:

itemList: number[][] = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

this.itemList[1][3] = 2
this.itemList[2][2] = 2

在这里插入图片描述
为游戏界面添加上下左右四个方向的滑动手势,当手势滑动时将该方向上的非空元素和空元素重新排列入栈(如0200排列为0002),并检测该方向有无相邻并且相等的元素进行相加,以向右滑动为例:

let list0 = this.itemList[0]
//过滤掉数组中的0
let arr2 = list0.filter((x) => x !== 0)
let blackArr = [0,0,0,0]
for (let i = 0; i < arr2.length; i++) {
     blackArr[i] = arr2[i]
}
//相邻相等项相加
for (let i = 0; i < blackArr.length - 1; i++) {
      if (blackArr[3 - i] === blackArr[2 - i] && blackArr[3 - i] !== 0) {
         blackArr[3 - i] = 0
         blackArr[2 - i] *= 2
          //相加的和就是分数
         this.score = this.score + blackArr[2 - i]
         console.log("得分:",this.score)
      }
}

再一次添加新元素,注意此时要检测不能在非空元素位置下添加:

//检测所有空值位置
let cells = []
for (let i = 0; i < 4; i++) {
  for (let j = 0; j < 4; j++) {
      if (!this.cellArr[i][j]) {
          cells.push(i * 4 + j)
      }
   }
}
//随机选中cells数组其中一个位置添加元素
let randomIndex =  Math.floor(Math.random() * cells.length)
let row = Math.floor(cellIndex / 4)
let col = cellIndex % 4
this.cellArr[row][col] = this.getRandomValue()

//随机生成新d的数字,2或4
getRandomValue() {
   let rand = this.randomVal(10);
   var value = 2;
   if (rand >= 5) {
      value = 4;
   }
   return value;
}

图片

这样游戏的基本逻辑就完成了,游戏界面上只需要使用网格组建Grid()展示如上操作的数组就可以。

如果大家还没有掌握鸿蒙,现在想要在最短的时间里吃透它,我这边特意整理了《鸿蒙语法ArkTS、TypeScript、ArkUI等…视频教程》以及《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

鸿蒙语法ArkTS、TypeScript、ArkUI等…视频教程:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

在这里插入图片描述

OpenHarmony APP开发教程步骤:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

在这里插入图片描述

《鸿蒙开发学习手册》:

如何快速入门:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.基本概念
2.构建第一个ArkTS应用
3.……

在这里插入图片描述

开发基础知识:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……

在这里插入图片描述

基于ArkTS 开发:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……

在这里插入图片描述

鸿蒙生态应用开发白皮书V2.0PDF:https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值