微信小程序:元宵灯笼连连看小游戏

2023-10-13 01:38

本文主要是介绍微信小程序:元宵灯笼连连看小游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

20180301 by 慕容秋

写在前面

前些天闲聊中跟家里的领导说,微信也可以做小游戏诶。然后她说,那你做个连连看游戏给我玩玩呗。再然后就有了这几天的摸索和下面的一些小结:

演示效果: http://link.muroqiu.com

源码地址: https://gitee.com/muroqiu/LinkUp


开发工具:

  • Cocos Creator v1.8.1
  • Visual Studio Code 1.20.1
  • Adob illustrator CC 2018
  • 微信开发者工具 1.02.1802270

主要的工作是在Cocos Creator和Visual Studio Code里完成的,illustrator CC 用来资源切图,微信开发者工具是最后打包微信小游戏用到;Cocos Creator对微信小游戏的支持已经很到位了,游戏写好后只要在构建时选择发布平台为Wechat Game就好。

目前微信还未开放小游戏注册与上架,只能用开发者的微信测试体验。好在Cocos Creator跨平台发布很方便,构建了个Web Mobile版本,发布到服务器上,大家有兴趣就一起可以体验咯^_^

主要的逻辑:

A、洗牌 shuffle:遍历图片数组,取1个随机位置的图片和当前位置交换;

B、用一个二维数组(各个方向均比图片数组大1)保存图片的状态值,搜索路径时映射到这个数组搜索;

C、搜索顺序:

  • 1、同一条直线:判断直线间有无图片;
  • 2、有一个拐角:先定位出两个拐角点,若拐角点没有图片,再转换成一条直线的情况继续处理;
  • 3、两个拐角:某个方向移动,若到达点没有图片,再转换成一个拐角的情况继续处理;若到达点有图片,此方向不再继续搜索;
/*** 直连*/matchBlockLine: function (x1, y1, x2, y2) {// cc.warn('matchBlock  ' + x1 + ', ' + y1 + '  : ' + x2 + ', ' + y2); if (x1 != x2 && y1 != y2) {return false;}if (x1 == x2) {// 同一列 if (x1 < 0 || x1 >= this.rows) {return true;}var Ymin = Math.min(y1, y2) + 1;var Ymax = Math.max(y1, y2);for (Ymin; Ymin < Ymax; Ymin++) {if (this._canvasGrids[x1 + 1][Ymin + 1] > this._TYPE_INIT) {return false;}}} else if (y1 == y2) {// 同一行 if (y1 < 0 || y1 >= this.columns) {return true;}var Xmin = Math.min(x1, x2) + 1;var Xmax = Math.max(x1, x2);for (Xmin; Xmin < Xmax; Xmin++) {if (this._canvasGrids[Xmin + 1][y1 + 1] > this._TYPE_INIT) {return false;}}}return true;},


/*** 一个转角* 搜索到路径时,返回转角坐标 x3, y3*/matchBlockCorner: function (x1, y1, x2, y2, isAxis_X) {// cc.warn('matchBlockCorner  ' + x1 + ', ' + y1 + '  : ' + x2 + ', ' + y2); var result;// 直连的返回 if (x1 == x2 || y1 == y2) {return null;}// 转角点1 (x1, y2),Y方向 if (this._canvasGrids[x1 + 1][y2 + 1] <= this._TYPE_INIT && isAxis_X != false) {result = this.matchBlockCorner_point(x1, y1, x2, y2, x1, y2);if (result) {return result;}}// 转角点2 (x2, y1),X方向 if (this._canvasGrids[x2 + 1][y1 + 1] <= this._TYPE_INIT && isAxis_X != true) {result = this.matchBlockCorner_point(x1, y1, x2, y2, x2, y1);if (result) {return result;}}return null;},/*** 转角逻辑*/matchBlockCorner_point: function (x1, y1, x2, y2, x3, y3) {var stMatch = this.matchBlockLine(x1, y1, x3, y3);if (stMatch) {var tdMatch = this.matchBlockLine(x3, y3, x2, y2);if (tdMatch) {return [x3, y3];}}return null;},
/*** 两个转角* 由中心往外展开搜索路径,某个方向当碰到有图片时,这个方向就不再继续搜索* 搜索到路径时,返回两个转角点坐标 x3, y3, x4, y4*/matchBlockUnfold: function (x1, y1, x2, y2) {var result;var x3 = 0;var y3 = 0;var canUp = true;var canDown = true;var canLeft = true;var canRight = true;// cc.warn('matchBlockUnfold  ' + x1 + ', ' + y1 + '  : ' + x2 + ', ' + y2); for (var i = 1; i < this.rows; i++) {// 上x3 = x1;y3 = y1 + i;if (canUp && y3 <= this.columns) {canUp = this._canvasGrids[x3 + 1][y3 + 1] <= this._TYPE_INIT;result = this.matchBlockUnfold_axis(x1, y1, x2, y2, x3, y3, false);if (result) {return result;}}// 下x3 = x1;y3 = y1 - i;if (canDown && y3 >= -1) {canDown = this._canvasGrids[x3 + 1][y3 + 1] <= this._TYPE_INIT;result = this.matchBlockUnfold_axis(x1, y1, x2, y2, x3, y3, false);if (result) {return result;}}// 左x3 = x1 - i;y3 = y1;if (canLeft && x3 >= -1) {canLeft = this._canvasGrids[x3 + 1][y3 + 1] <= this._TYPE_INIT;result = this.matchBlockUnfold_axis(x1, y1, x2, y2, x3, y3, true);if (result) {return result;}}// 右x3 = x1 + i;y3 = y1;if (canRight && x3 <= this.rows) {canRight = this._canvasGrids[x3 + 1][y3 + 1] <= this._TYPE_INIT;result = this.matchBlockUnfold_axis(x1, y1, x2, y2, x3, y3, true);if (result) {return result;}}}return null;},/*** 某个方向上的搜索逻辑*/matchBlockUnfold_axis: function (x1, y1, x2, y2, x3, y3, isAxis_X) {// cc.warn("matchBlockUnfold_axis  " + x3 + ', ' + y3); var tmpXY = [];if (this._canvasGrids[x3 + 1][y3 + 1] <= this._TYPE_INIT) {tmpXY = this.matchBlockCorner(x3, y3, x2, y2, isAxis_X);if (tmpXY) {return [x3, y3].concat(tmpXY);;}}return null;},

参考资料

  • http://blog.csdn.net/artzok/article/details/51622782


作者:汀江秋雨
链接:jianshu.com/p/740603fc6
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
开启赞赏

这篇关于微信小程序:元宵灯笼连连看小游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/199850

相关文章

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

这些心智程序你安装了吗?

原文题目:《为什么聪明人也会做蠢事(四)》 心智程序 大脑有两个特征导致人类不够理性,一个是处理信息方面的缺陷,一个是心智程序出了问题。前者可以称为“认知吝啬鬼”,前几篇文章已经讨论了。本期主要讲心智程序这个方面。 心智程序这一概念由哈佛大学认知科学家大卫•帕金斯提出,指个体可以从记忆中提取出的规则、知识、程序和策略,以辅助我们决策判断和解决问题。如果把人脑比喻成计算机,那心智程序就是人脑的

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

Spring Roo 实站( 一 )部署安装 第一个示例程序

转自:http://blog.csdn.net/jun55xiu/article/details/9380213 一:安装 注:可以参与官网spring-roo: static.springsource.org/spring-roo/reference/html/intro.html#intro-exploring-sampleROO_OPTS http://stati

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动