微信小程序:拼图游戏

2023年夏季《移动软件开发》实验报告

一、实验目标

1、综合应用所学知识创建完整的拼图游戏项目;2、熟练掌握< canvas >组件。

二、实验步骤

1.首先创建新项目,选择不使用云服务和JavaScript官方模板,命名为Game。

2.页面配置。

​ 2.1将app.json文件内pages属性中的“pags/logs/logs改成“pages/game/game”,并保存;

​ 2.2删除以下文件:

​ (1)删除pages文件下的logs文件夹;

​ (2)删除index.wxml和index.wxss中的全部代码;

​ (3)删除app.wxss中的全部代码;

​ 2.3创建images文件夹,并将https://gaopursuit.oss-cn-beijing.aliyuncs.com/2023/images.zip解压后的所有图片放在images文件夹中;

3.视图设计。

3.1导航栏设计,在app.json文件中修改代码如下:

在这里插入图片描述

得到结果为:

在这里插入图片描述

3.2页面设计。

(1)首先,公共样式设计,在app.wxss中设置页面窗口和顶端标题的公共样式,修改代码如下:

在这里插入图片描述

(2)接着,设计首页,首页包括标题和关卡列表两个部分,修改index.wxml代码如下:

在这里插入图片描述

相应地在index.wxss文件中修改容器的布局大小等如下:

在这里插入图片描述

得到结果如下:

在这里插入图片描述

(3)游戏页面设计,包括提示图和游戏操作部分以及一个”重新开始“的button按钮

首先,在game.wxml文件中设计代码如下:

在这里插入图片描述

相应地在game.wxss文件中设计容器的布局大小等:

在这里插入图片描述

得到如下效果:

在这里插入图片描述

4.逻辑设计。

4.1首页逻辑设计

(1)关卡列表展示,在index.js文件的data中录入关卡图片的数据信息:

在这里插入图片描述

相应地,在index.wxml文件中添加 wx:for 循环用于显示关卡列表数据和图片:

在这里插入图片描述

得到如下效果:

在这里插入图片描述

(2)设计点击图片跳转游戏页面,在index.wxml文件中修改如下:

在这里插入图片描述

在index.js文件中实现自定义函数chooseLevel:

在这里插入图片描述

此时已可点击跳转至game页面,但无法显示正确的提示图,需要在game页面进行携带数据的接收处理。

4.2设计游戏页逻辑

(1)显示提示图,即接收相应的关卡信息,在game.js文件中设计代码如下;

在这里插入图片描述

相应地修改game.wxml文件代码如下:

在这里插入图片描述

此时实现了点击关卡跳转至其正确的提示图信息。

(2)游戏逻辑实现。

首先,在game.js文件记录游戏初始数据信息:

在这里插入图片描述

接着,初始化拼图画面。思路是:先将图分为3×3的9块小图,将右下角的图片方块置为空白块,每次随机让它和周围邻近的方块交换位置,其中打乱方块顺序共100次,每次循环使用Math.random()方法从上、下、左、右4个方向随机产生一个方向,符合条件则交换空白块和图片方块的位置,在game.js文件实现如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

然后在game.js中添加自定义函数drawCanvas,用于将打乱后的图片方块绘制到画布上,在game.js中添加如下代码:

在这里插入图片描述

最后在game.js的onLoad函数中调用自定义函数shuffle和drawCanvas,对应在game.js中实现代码如下:

在这里插入图片描述

当前效果图:

在这里插入图片描述

接着实现移动被点击的方块。修改game.wxml中的画布组件,为其绑定触摸事件:

在这里插入图片描述

然后实现图片方块的移动,在game.js文件中添加自定义函数touchBox:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

此时即可实现移动方块。

(3)判断游戏成功。

首先,在game.js文件中的data中添加初始数据isWin,用于标记游戏成功与否,在game.js的data中初始化:

在这里插入图片描述

再在game.js文件中添加定义函数isWin,用于判断游戏是否已经成功:

在这里插入图片描述

然后再修改touchBox函数,要求被触发时追加对游戏成功状态的判断,在game.js中修改:

在这里插入图片描述

在这里插入图片描述

游戏成功图为:

在这里插入图片描述

(4)实现”重新开始“按钮

先修改game.wxml文件追加自定义函数restartGame,用于重新开始游戏:

在这里插入图片描述

再在game.js文件中实现restartGame函数:

在这里插入图片描述

点击重新开始按钮,得到:

在这里插入图片描述

三、程序运行结果

列出程序的最终运行结果及截图。

首页游戏列表:

在这里插入图片描述

点开其中一关得到:

在这里插入图片描述

游戏成功得到:

在这里插入图片描述

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值