首页 > 其他分享 >实验4:拼图游戏

实验4:拼图游戏

时间:2023-08-29 18:12:39浏览次数:34  
标签:index js game 实验 拼图游戏 pages 方块 页面

一、实验目标

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

二、实验步骤

  1. 根据实验手册上的网址,下载项目需要用到的文件。然后进入微信开发者工具,创建一个新项目jigsawGame。

    微信截图_20230829094454
  2. 本项目有两个页面文件,需要在pages目录下创建index(首页页面)和game(游戏页面)。在根目录下的app.json中定义,如下图所示:

    微信截图_20230829161841
  3. 公共样式设计在app.wxss中编写代码,如下图所示:

  4. index页面设计包含两部分内容:

    • 顶端标题:<view>容器
    • 关卡列表:<view>容器,内部使用数组循环

    pages/game/game.wxmlpages/game/game.wxss中代码分别如下:

    微信截图_20230829164333微信截图_20230829164408

  5. game页面设计包含两部分内容:

    • 整体容器和顶端标题:<view>
    • 提示图:<image>
    • 游戏画布:<canvas>
    • 重新开始按钮:<button>

    pages/game/game.wxmlpages/game/game.wxss中代码分别如下:

    微信截图_20230829164931微信截图_20230829164946

    由于暂时没有做点击跳转的逻辑设计,所以可以在开发工具顶端选择“普通编译”下的“添加编译模式”,并携带临时测试参数level=pic01.jpg,如下图所示:

    微信截图_20230829103051

    这样编译后只显示game页面:

    微信截图_20230829103702
  6. pages/index/index.js中进行首页的逻辑实现。

    • Page中的data后设置页面的初始数据,在pages/index/index.js中使用for循换遍历列表。
    • 自定义函数chooseLevel实现游戏选择关卡功能,在pages/index/index.js中使用bindtap进行函数绑定。

    编译运行后index页面如下图所示:

    微信截图_20230829110258
  7. pages/game/game.js中进行游戏页面的逻辑实现。首先在game.js开头记录一些游戏初始数据信息,包括方块的初始位置、方块的宽度、图片的初始地址。

    微信截图_20230829171850
  8. 初始化拼图画面。考虑从空白方块的所在位置入手,每次随机让它和周围的邻近方块交换位置,这样可以通过方块反向移动回到最初始状态,确保本局有解,并且交换足够多的次数后,可以实现随机打乱的效果。在game.js中添加shuffle函数,随机打乱方块顺序。然后继续添加drawCanvas函数,用于将打乱后的图片方块绘制到画布上。最后在onLoad函数中调用自定义函数shuffledrawCanvas。实现效果如下:

    微信截图_20230829153846
  9. 移动被点击的方块。在game.js文件添加自定义函数 touchBox,用于实现图片方块的移动。修改game.wxml页面中的画布组件<canvas>,使用bindtouchstart为其绑定触摸事件touchBox

    微信截图_20230829174057
  10. 判断游戏成功。在game.js中的data里添加初始数据isWin,用于标记游戏成功与否。添加函数isWin用于判断游戏是否已经成功。然后修改touchBox函数,在被触发时追加对游戏是否成功的判断,如果游戏成功,不做任何操作。

微信截图_20230829174321
  1. 重新开始游戏。在game.js中添加restartGame函数,用于重新开始游戏。修改game.wxml代码,为“重新开始”按钮<button>使用bindtap绑定点击事件restartGame

    微信截图_20230829174804

    选择“普通编译”进行编译即可。

三、程序运行结果

选择第二关,拼图顺序打乱。

微信截图_20230829161347

拼图完成后,显示“游戏成功”。

四、问题总结与体会

  1. 通过这次实验,熟悉了画布canvas的用法。
  2. 拼图小游戏的逻辑实现还是比较复杂的,需要理解后才能把代码写出来。

标签:index,js,game,实验,拼图游戏,pages,方块,页面
From: https://www.cnblogs.com/catting123/p/17665565.html

相关文章

  • 实验3:媒体API之口述校史
    一、实验目标掌握视频API的操作方法;掌握如何发送随机颜色的弹幕。二、实验步骤根据实验手册上的网址,下载视频播放图标,图片如下。进入微信开发者工具,创建一个新项目videoDemo。在根目录下的app.json中定义导航栏标题和背景颜色,如下图所示。根据实验文档,页面设......
  • 16 Linux 内核定时器实验
    一、Linux时间管理和内核定时器简介1.内核时间管理简介  Linux内核中有大量的函数需要时间管理,比如周期性的调度程序、延时程序、定时器等。  硬件定时器提供时钟源,时钟源的频率可以设置,设置好以后就周期性的产生定时中断,系统使用定时中断来计时。中断周期性产生的频率......
  • 1-5可编程定时器/计数器 8253 实验
    EXTRNInitKeyDisplay:NEAR,Display8A:NEARIO8259_0EQU0250HIO8259_1EQU0251HCOM_ADDREQU0263HT2_ADDREQU0262H_STACKSEGMENTSTACKDW100DUP(?)_STACKENDS_DATASEGMENTWORDPUBLIC'DATA'BUFFERDB8DUP(?)CounterDB?ReDisplayFlagDB......
  • FIFO求和实验
    第44章、FIFO求和实验【理论】【注】数据矩:5行(m)4列(n)),对3行(x)求和原数据矩阵m*n,m表示行数,n表示每行数据个数fifo深度要大于每行个数(显然)fifo个数为n-1个求和后形成的结果矩阵p(行)*q(列),q=n,p=m-x+1(每个fifo要存储行的次数)要完成3行数据的SUM求和,需要调用2个FIFOIP核......
  • 基于LXD搭建实验室GPU服务器(三)——配置frp网穿并注册服务
    在之前博客中,我们对宿主机进行了基本配置和基本深度学习环境的配置,在本文中,我们将介绍如何对服务器进行frp网穿,本文的内容可用于后续的lxd容器中,实现每个容器皆可使用公网ip访问。若不需要配置网穿,则可以跳过此文。配置网穿可以在局域网外访问服务器,我们需要一台具有公网ip的服......
  • 【INFINI Workshop 深圳站】8 月 31 日一起动手实验玩转 Easysearch
    8月31日下午和INFINILabs的技术专家面对面,第一时间了解极限实验室的发布最新产品和功能特性,通过动手实战,快速掌握最前沿的搜索技术,并用于实际项目中。欢迎大家免费报名参加。活动时间:2023-08-3113:30~17:30活动地点:广东深圳南山区科发路91号华润置地大厦D座5层05A会议室......
  • 基于LXD搭建实验室GPU服务器(二)——宿主机的深度学习环境安装
    在上一篇博客中,我们介绍了服务器的基本配置,例如换源、sshd配置、防火墙配置等。在本文中,我们将继续介绍如何在宿主机配置基本的深度学习环境,包括nvidia驱动,cuda,anaconda,torch等。nvidia驱动和cuda环境配置下载cudacuda的历史版本链接如下,这里选择服务器对应平台的runfile文件......
  • 基于LXD搭建实验室GPU服务器(一)——宿主机的基本配置
    从零搭建服务器是一个看似简单实则有些繁琐的操作,本文旨在记录并整合这些操作,使得后续搭建可以成为一个流水线般简单流程的过程。操作系统的安装过程网络上资源非常多,本文不再赘述。本文将对刚安装的ubuntu20.04.06操作系统进行基本配置。换源由于GFW的存在,因此需要先对apt进......
  • 基于springboot中药实验管理系统设计与实现
    随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了中药实验管理系统的开发全过程。通过分析中药实验管理系统管理的不足,创建了一个计算机管理中药实验管理系统的方案。文章介绍了中药实验管理系统的系统分析部分,包括可行性分析等,系统设......
  • Linux 多点电容触摸屏实验
      https://blog.51cto.com/u_14943525/5435770 Linux多点电容触摸屏实验 原创wx5f6a96e093b032022-07-0200:03:41博主文章分类:Linux嵌入式——驱动开发©著作权文章标签linux#include触摸屏文章分类运维阅读数4481.电容触摸屏驱动框架1.1MT协议讲解①、电......