微信小程序(游戏)----拼图游戏(设计思路)

微信小程序(游戏)----拼图游戏(设计思路)

设计思路

1、将一张海报等分成 N*N 的矩阵

方法一:利用两个组件循环完成,view组件和image组件,view组件作为盒子规定大小—-超出部分不显示,image组件展示完整的海报—-进行定位。循环该组合拼接成一张完整的海报。
方法二:利用一个组件循环完成,view组件配合背景图,单纯的循环定位view组件,就能完成海报。

优点:方法一可以将大多数公用的WXSS提出到WXSS文件中,WXML代码比较清晰;方法二组件少一个,结构比较清晰。
缺点:方法一组件多,定位多,容易混乱;方法二背景必须在view组件上设置,代码冗余。

本文采用方法二实现。

2、图片位置的处理

1、 创建海报正确时的view定位和背景定位数组typeArr;
2、 创建打乱数组顺序的view定位和背景定位数组newTypeArr;
3、 对newTypeArr进行循环展示,在页面形成错乱的海报。

3、 打乱顺序的处理

1、创建一个矩阵个数(N*N)长度的一维数组([0,…,N*N-1]);
方法一:用sort方法传入函数 ()=>{return Math.random() - 0.5;}
方法二:循环每次随机一个位置,将当前位置的数和随机位置的数进行互换

function randomArr(){
  let len = this.pointsArr.length;
  for(let i = 0; i < len; i++){
    let index = parseInt(Math.random() * len);
    let current = this.pointsArr[i];
    this.pointsArr[i] = this.pointsArr[index];
    this.pointsArr[index] = current;
  }
}

方法三:再新建一个空数组,循环矩阵数组,每次随机一个0 ~ N*N-1的数,保存到空数组,如果随机数在空数组存在,则此次循环重来,如果随机数在空数组不存在,则保存到空数组。

本文采用方法二处理。

4、触发拖拽和图片切换的处理
  1. 直接全局单独创建以view组件(拖拽view),默认隐藏,初始定位(0,0)背景(0,0)
  2. touchstart的处理,获取触点的当前位置—通过触点获取该位置view组件的定位坐标(x,y)背景坐标(px,py),同时记录当前触点的坐标(cx,cy)
  3. 将获取的定位坐标(x,y)背景坐标(px,py)赋值给拖拽view
  4. touchmove的处理,记录当前移动点的坐标(cgx,cgy),通过坐标(cx,cy)和(cgx,cgy)计算出发生的位移(sx,sy),对拖拽view的定位坐标进行相同的位移(sx,sy)处理
  5. touchend的处理,拖拽view隐藏还原,将end时矩阵触点viewstart时的矩阵触点view的背景坐标(px,py)进行交换,完成两个位置的图片切换。
5、是否完成拼图的判断

将正确顺序数组typeArr和错乱数组newTypeArr进行JSON.stringify()转化比较,如果相同,则完成拼图,否则未完成拼图。

6、是否继续增加游戏难度

如果增加游戏难度,type值加一,init初始化游戏,否则返回首页。

注意

  1. 此处的拖拽功能采用的定位模拟,而不是HTML5原生的拖拽功能。
  2. 采用的是拖拽切换拼图,而不是空位移动拼图,此种方式简单很多。
  3. 每次拖拽完成后所有的记录数据要清除还原。

下载

我的博客,欢迎交流!

我的CSDN博客,欢迎交流!

微信小程序专栏

前端笔记专栏

微信小程序实现部分高德地图功能的DEMO下载

微信小程序实现MUI的部分效果的DEMO下载

微信小程序实现MUI的GIT项目地址

微信小程序实例列表

前端笔记列表

游戏列表

posted @ 2018-03-15 10:55 Newman·Li 阅读( ...) 评论( ...) 编辑 收藏
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码 微信小程序源码-毕业设计期末大作业课程设计源码
微信小程序 map-master 是基于微信开发平台的一款地图应用。它提供了丰富的地图展示和定位功能,方便用户查询地理位置信息,规划路线等。 在 map-master 中,用户可以通过地图展示页面查看各种地理标记,包括地点、商铺、景点等。用户可以通过缩放、拖动地图来获得更详细的信息,双击地图可以放大到更具细节的级别。地图上的标记点提供了关于该地点的详细信息,包括名称、地址、评分等。用户可以点击标记点来查看更详细的信息,也可以通过搜索功能来查找特定的地点。 在定位功能方面,map-master 使用了微信提供的位置服务接口,可以根据用户的实际位置显示当前定位,并提供导航功能。用户可以使用导航功能输入起点和终点,map-master 会根据用户选择的交通方式,提供最佳路线规划和导航指引,方便用户出行和导航。 除了基本的地图展示和定位功能外,map-master 还提供了一些实用的附加功能,比如周边搜索、实时交通状况等。用户可以通过周边搜索功能查找特定类型的地点,比如餐馆、银行、酒店等,从而更方便地满足自己的需求。实时交通状况功能可以帮助用户选择避免拥堵的路线,节省时间和精力。 总之,微信小程序 map-master 是一款功能强大且实用的地图应用程序,提供了丰富的地图展示和定位功能,为用户的出行和导航提供了很大的便利。用户可以随时随地通过微信小程序打开 map-master,获取周边信息、规划导航路线等,方便快捷。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值