『江鸟中原』基于鸿蒙系统的简易拼图游戏
  4UN57EArzNly 2023年12月10日 17 0

前言

(中原工学院RB软工移212郭一鸣鸿蒙选修课大作业)本项目是基于鸿蒙操作系统开发出的一款简单拼图游戏。

开发环境

DevEco Studio

语言

ArkTS

项目结构

 项目整体结构如图1所示,pages文件夹提供了index和puzzle两个界面,分别对应主界面和拼图界面;在common文件夹里,我们提供了拼图所用的图片(图片格式为png,像素均为360X360)以及引用图片的列表;media文件夹中存放了项目的图标。

『江鸟中原』基于鸿蒙系统的简易拼图游戏_编程能力

图1 项目结构

游戏展示

主界面如图2所示,游戏提供了简单(3X3)、普通(4X4)、困难(5X5)三个等级,选择难度后进入拼图界面,如图3所示。拼图界面共有10张图供选择,玩家可以通过“更换图片”选项进行图片的调整;选定图片后,屏幕上方会进行计时,玩家参照左侧的预览图,通过不同方向的滑动以移动拼图。当拼图与预览图重合时,提示“恭喜通关!”,游戏结束,停止计时,如图4所示;在游戏的任何时候,玩家都可以选择“重新开始”选项,此时拼图将会重置,时间清零,重新开始游戏;“回到首页”选项可以结束游戏,重新回到主界面进行难度选择;“显示数字”选项会显示出每个拼块的正确位置,给玩家以提示,如图5所示。

『江鸟中原』基于鸿蒙系统的简易拼图游戏_项目结构_02

图2 主界面展示

『江鸟中原』基于鸿蒙系统的简易拼图游戏_项目结构_03

图3 拼图页面

『江鸟中原』基于鸿蒙系统的简易拼图游戏_项目结构_04

图4 通关样式

『江鸟中原』基于鸿蒙系统的简易拼图游戏_软工_05

图5 数字提示

游戏逻辑

现对游戏核心代码进行说明:

难度选择:游戏共有三个难度选择,此处功能的实现通过playgame(num)方法实现。系统接收到用户选择的难度,将对应数字传送给puzzle页面。puzzle根据数字决定如何裁切图片,可将图片分别裁切为9,16,25个片段,具体代码如图6,图7所示。

『江鸟中原』基于鸿蒙系统的简易拼图游戏_编程能力_06

图6 难度选择方法

『江鸟中原』基于鸿蒙系统的简易拼图游戏_项目结构_07

图7 图片切割方法

拼图算法:拼图的实现是通过将图片分割,将对应的每一部分各以一个数组元素的形式存放在二维数组内而完成的。游戏开始时,由上述代码先将图片分割,再调用initGrids()方法随机打乱100次,如图8所示。

『江鸟中原』基于鸿蒙系统的简易拼图游戏_软工_08

图8 打乱图片

滑动实现:用户通过滑动来移动图片,这个功能用到了changeGrids方法,先找到并判定0号拼图(空白)的位置,再根据滑动方向决定空白块的移动,具体代码如图9所示。

『江鸟中原』基于鸿蒙系统的简易拼图游戏_软工_09

图9 滑动方法

胜利判断:当所有分割后的图片全部回到初始位置时,游戏胜利,提示“恭喜通关!”,计时器停止计时,显示所用时间。具体代码如图10所示。

『江鸟中原』基于鸿蒙系统的简易拼图游戏_编程能力_10

图10 胜利判定


按键效果:拼图界面提供了四个按键,其对应效果如图11所示。

『江鸟中原』基于鸿蒙系统的简易拼图游戏_编程能力_11

图11 对应跳转

总结

本项目只是一个基础的拼图游戏,还有许多可以优化和改进的地方。在制作期间,我也从中学习到了不少编程知识,尤其是将图片切割和用数组进行存储这一点十分巧妙。我会在今后的学习中继续深化编程能力,争取制作出更加完备的项目。

声明

本项目所用图片等资源来源于网络,资源仅作学习用途,项目不产生任何收益,如侵权请联系更换或删除。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月10日 0

暂无评论

4UN57EArzNly