微信小程序开发实例:猜成语游戏

本文详细介绍了微信小程序开发的一个实例——猜成语游戏。游戏规则是用户根据图片选择汉字组成成语,点击提交判断对错。文章涵盖页面设计、逻辑层设计、关键技术如实时显示、数组赋值、删除选择及播放音乐的实现,以及页面美化等步骤。
摘要由CSDN通过智能技术生成

在这里插入图片描述

一、案例描述

设计一个微信小程序,初始页面显示一张图片和十个随机排列的汉字,用户根据图片内容猜测与其意思最符合的成语,并依次点选汉字,组成成语。最后点击提交按钮进行判断对错,若回答错误显示重做按钮,若回答正确则显示下一题按钮。

二、设计思路

1.页面设计思路

由于页面需要显示图片,我们可以通过image组件来显示图片,并给它绑定一个数组,通过循环渲染将数据库数据显示。我们还需要十个按钮来显示备选汉字,同样,我们通过循环渲染将数据显示在前端。我们也可以设置四个按钮,实时显示用户选择内容,并且点击对应按钮可以清空用户选择。用button按钮实现提交、重做、下一题、结束答题等效果,并且通过hidden功能将其在不同情况下隐藏或显示。

2.逻辑层设计思路

首先,我们需要定义一个数组用来存放题目数据,然后用一个变量index用来记录当前题目数。

接下来我们定义一些函数。btnOpClick函数用来实现点击汉字事件,将用户点击实时显示在页面。backspace函数用来实现点击显示内容清空用户选择(每次只清空一个字)。submit函数是提交函数,当用户点击提交之后,判断用户答案正误并播放音乐,同时在页面上显示用户答案。next和reset分别是下一题和重做事件函数,用来清空用户选择(全部清空)并进入下一题或停留当前题目。

三、关键技术

1.用户选择内容实时显示在前端

为使用户有较好的体验感,我们可以设计将用户选择内容实时显示在前端。这里,我们选择使用4个button按钮组件来实现这个效果。首先,我们定义一个数组,用来存储用户点选的汉字,并给数组赋值,

date:{
   
  xianshi : ["_","_","_","_"],
}

接着再给用于显示备选汉字的button按钮绑定一个点击事件,在点击事件中,将用户点击的按钮value值依次赋给用于存放用户选择内容的数组。

  btnOpClick: function(e){
   
    this.setData({
   
      [xianshi]: e.currentTarget.id,
      n:this.data.n + 1,
    })
    this.useranswer = this.useranswer + e.currentTarget.id;
  },

在显示层,我们将数组内容显示出来,

<button>{
  {xianshi[0]}}</button>
<button>{
  {xianshi[1]}}</button>
<button>{
  {xianshi[2]}}</button>
<button>{
  {xianshi[3]}}</button>

2.setData给循环数组赋值

当我们在上一步中给存放用户选择内容的数组赋值时会发现系统会报错,如下图

在这里插入图片描述

这是因为在微信小程序开发中,setData()组件只能给静态数组赋值,但在我们的程序中,对数组的中的某个元素的设置是动态的。所以,我参考了https://blog.csdn.net/hicoldcat/article/details/53967334中的内容,将代码更改为

var show = "xianshi["+this.data
  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值