推箱子游戏

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

一、实验目标

1、综合应用所学的知识创建完整的推箱子游戏;2、熟练掌握< canvas >和绘图API。

二、实验步骤

1.项目创建和配置

1.1创建新项目,选择不使用云服务,命名为Game2;

1.2将app.json文件中的pages/logs/logs改为pages/game/game,保存,同时删除logs文件夹;

1.3删除以下文件:

(1)删除utils文件夹;

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

(3)删除index.js中的全部代码,并输入page找到第二个选项按下Tab键;

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

(5)删除app.js中的全部代码,并输入app按下Tab键。

1.4创建文件

(1)新建images文件夹,下载并将https://gaopursuit.oss-cn-beijing.aliyuncs.com/course/mobileDev/boxgame_images.zip压缩包中的文件解压至images文件夹中;

(2)在utils文件夹下新建文件data.js,用作公共文件。

2.页面配置

2.1导航栏设计

更改app.json文件如下:
在这里插入图片描述

得到效果为:

在这里插入图片描述

2.2页面设计

(1)公共样式设计

在app.wxss中设置页面容器和顶端标题的公共样式如下:
在这里插入图片描述

(2)首页设计

首页包含两个部分,标题和关卡列表

修改index.wxml文件如下:
在这里插入图片描述

对应地修改wxss文件如下:
在这里插入图片描述

得到的效果图为:

在这里插入图片描述

(3)游戏页面设计

游戏页面内容包括整体容器、顶端标题和游戏画布,修改game.wxml文件如下:

在这里插入图片描述

对应地修改game.wxss文件如下:
在这里插入图片描述

3.逻辑设计

3.1公共逻辑

在data.js文件中配置游戏地图的数据如下,其中map1-map4代表4个不同关卡的地图数据,以二维数组的形式存放:

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

需要在game.js中引用公共js文件,如下:

在这里插入图片描述

3.2首页逻辑

首页主要实现两个功能:展示关卡列表和点击图片能跳转到游戏页面。

(1)关卡列表展示

修改index.js文件如下:

在这里插入图片描述

接着为关卡对应的view组件添加wx:for属性循环显示关卡列表数据和图片:
在这里插入图片描述

得到的效果图为;

在这里插入图片描述

(2)点击跳转游戏页面

修改index.wxml文件如下,其中data-level属性携带了关卡图片下标信息:

在这里插入图片描述

相应地在index.js中实现自定义点击事件choosLevel函数:

在这里插入图片描述

此时实现了点击跳转到game页面,并且成功携带了关卡图片数据,但游戏画面是不正确的,需要继续处理。

3.3游戏页逻辑

游戏页需要实现以下三个功能:

(1)显示当前是第几关

修改game.js文件如下:

在这里插入图片描述

修改对应game.wxml文件如下:
在这里插入图片描述

此时点击不同关卡的图片跳转到对应正确的内容了。

(2)游戏逻辑实现

首先在game.js文件中准备以下初始数据信息:
在这里插入图片描述

接着初始化游戏画面,在game.js文件中添加initMap函数,用于初始化游戏地图数据,实现思路为:先从data.js中读取对应关卡的游戏地图数据,然后使用双重for循环对每一块地图数据进行解析,并更新当前游戏的初始地图数据、箱子数据以及游戏小鸟所在的位置,如下;

在这里插入图片描述

然后在game.js中添加自定义函数drawCanvas,用于将地图信息绘制到画布上:

在这里插入图片描述

在这里插入图片描述

最后在game.js的onLoad函数中创建画布上下文,并依次调用自定义函数initMap和drawCanvas,对应的js文件修改如下:

在这里插入图片描述

当前效果为:

在这里插入图片描述

接着是方向键逻辑的实现。

修改game.wxml页面的4个方向键button,为其绑定点击事件:

在这里插入图片描述

接着在game.js文件中实现自定义函数up、down、left、right,分别用于实现游戏小鸟在上、下、左、右4个方向的移动,每次点击在条件允许的情况下移动一格,修改game.js文件如下:

上:

在这里插入图片描述

下:

在这里插入图片描述

左:
在这里插入图片描述

右:
在这里插入图片描述

(3)判断游戏成功

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

在这里插入图片描述

以及自定义函数checkWin,用于实现当判断成功时弹出提示对话框:

在这里插入图片描述

最后需要在4个方向键函数中追加判断游戏成功的函数,以up为例:

在这里插入图片描述

(4)重新开始游戏

修改game.wxml文件,为“重新开始”按钮追加自定义函数的点击事件:

在这里插入图片描述

对应地在game.js文件中实现如下:

在这里插入图片描述

实现完毕!

三、程序运行结果

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

首页游戏列表:

在这里插入图片描述

点击关卡打开:

在这里插入图片描述

实现上、下、左、右的移动:

在这里插入图片描述

成功后跳出提示框:

在这里插入图片描述

点击重新开始按钮:

在这里插入图片描述

四、问题总结与体会

描述实验过程中所遇到的问题,以及是如何解决的。有哪些收获和体会,对于课程的安排有哪些建议。

​ 本次实验学习并创建了完整的推箱子游戏,熟练掌握< canvas >和绘图API,对微信开发者工具的使用有了进一步的学习和认识。本次实验重在逻辑部分的实现,巧妙地依靠了两个数组来实现数据的更新。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值