2048微信小程序源码

article/2025/11/7 18:43:11

 2048微信小程序效果

布局页面

 页面结构

 

<view class="action_cavas" bindtouchstart="tapStart" bindtouchmove="tapMove" bindtouchend="tapEnd">
<view class="score"><view class="title">2048</view><view class="scoredetail"><view class="scoredesc">得分</view><view class="scorenumber">{{score}}</view></view><view class="scoredetail"><view class="scoredesc">历史最高</view><view class="scorenumber">{{maxscore}}</view></view>
</view>
<view class="bc_cavas"><view class="bc" wx:for="{{numbers}}" wx:for-item="row" ><view wx:for="{{row}}" class="bc_ bc_{{item}}"> {{item}} </view></view>
</view>
</view>
<modal class="modal" hidden="{{modalHidden}}" bindconfirm="modalChange" bindcancel="modalCancle"><view> 游戏结束,重新开始吗? </view>
</modal>

JS 

//index.js
//获取应用实例
var app = getApp()
Page({data: {score: 0,maxscore: 0,startx: 0,starty: 0,endx:0,endy:0,direction:'',numbers:[[0,0,2,2],[0,2,4,0],[0,4,0,0],[0,0,0,0]],modalHidden: true,},onLoad: function () {//调用API从本地缓存中获取数据var maxscore = wx.getStorageSync('maxscore')if(!maxscore) maxscore = 0this.setData({maxscore:maxscore})},storeScore:function(){console.log(this.data.maxscore, this.data.score)if(this.data.maxscore < this.data.score){this.setData({maxscore:this.data.score})wx.setStorageSync('maxscore', this.data.maxscore)}},tapStart: function(event){this.setData({startx: event.touches[0].pageX,starty: event.touches[0].pageY})},tapMove: function(event){this.setData({endx: event.touches[0].pageX,endy: event.touches[0].pageY})},tapEnd: function(event){var heng = (this.data.endx) ? (this.data.endx - this.data.startx) : 0;var shu = (this.data.endy) ? (this.data.endy - this.data.starty) : 0;console.log(heng, shu);if(Math.abs(heng) > 5 || Math.abs(shu) > 5){var direction = (Math.abs(heng) > Math.abs(shu)) ? this.computeDir(1, heng):this.computeDir(0, shu);this.setData({startx:0,starty:0,endx:0,endy:0})this.mergeAll(direction) && this.randInsert();}},computeDir: function(heng, num){if(heng) return (num > 0) ? 'right' : 'left';return (num > 0) ? 'bottom' : 'top';},mergeAll: function(dir){this.checkGame();switch(dir){case 'left':return this.mergeleft();break;case 'right':return this.mergeright();break;case 'top':return this.mergetop();break;case 'bottom':return this.mergebottom();break;default:}},//左划mergeleft: function(){var change = false;var arr = this.data.numbers;for(var i = 0; i < 4; i++){//merge firstfor(var j = 0; j < 3; j++){if(arr[i][j] == 0) continue;for(var k = 1; k < 4-j; k++){if(arr[i][j] != 0 && arr[i][j+k] != 0){if(arr[i][j] != arr[i][j+k]) break;   //不相同则直接跳过arr[i][j] = arr[i][j] *2;arr[i][j+k] = 0;change = true;this.setData({score: this.data.score + arr[i][j]/2})break;}}}//movemovefor(var j = 0; j < 3; j++){if(arr[i][j] == 0){for(var k = 1; k < 4-j; k++){if(arr[i][j+k] != 0){arr[i][j] = arr[i][j+k];arr[i][j+k] = 0;change = true;break;}}}}}this.setData({numbers:arr})this.storeScore()return change},//右滑mergeright: function(){var change = falsevar arr = this.data.numbers;for(var i = 0; i < 4; i++){//merge firstfor(var j = 3; j > 0; j--){if(arr[i][j] == 0) continue;for(var k = 1; k <= j; k++){if(arr[i][j] != 0 && arr[i][j-k] != 0){if(arr[i][j] != arr[i][j-k]) break;arr[i][j] = arr[i][j] *2;arr[i][j-k] = 0;change = true;this.setData({score: this.data.score + arr[i][j]/2})break;}}}//movemovefor(var j = 3; j > 0; j--){if(arr[i][j] == 0){for(var k = 1; k <= j; k++){if(arr[i][j-k] != 0){arr[i][j] = arr[i][j-k];arr[i][j-k] = 0;change = true;break;}}}}}this.setData({numbers:arr})this.storeScore()return change},//下划mergebottom: function(){var change = falsevar arr = this.data.numbers;for(var i = 0; i < 4; i++){//merge firstfor(var j = 3; j > 0; j--){if(arr[j][i] == 0) continue;for(var k = 1; k <= j; k++){if(arr[j][i] != 0 && arr[j-k][i] != 0){if(arr[j][i] != arr[j-k][i]) break;arr[j][i] = arr[j][i] *2;arr[j-k][i] = 0;change = truethis.setData({score: this.data.score + arr[j][i]/2})break;}}}//movemovefor(var j = 3; j > 0; j--){if(arr[j][i] == 0){for(var k = 1; k <= j; k++){if(arr[j-k][i] != 0){arr[j][i] = arr[j-k][i];arr[j-k][i] = 0;change = truebreak;}}}}}this.setData({numbers:arr})this.storeScore()return change},//上滑mergetop: function(){var change = falsevar arr = this.data.numbers;for(var i = 0; i < 4; i++){//merge firstfor(var j = 0; j < 3; j++){if(arr[j][i] == 0) continue;for(var k = 1; k < 4-j; k++){if(arr[j][i] != 0 && arr[j+k][i] != 0){if(arr[j][i] != arr[j+k][i]) break;arr[j][i] = arr[j][i] *2;arr[j+k][i] = 0;change = truethis.setData({score: this.data.score + arr[j][i]/2})break;}}}//movemovefor(var j = 0; j < 3; j++){if(arr[j][i] == 0){for(var k = 1; k < 4-j; k++){if(arr[j+k][i] != 0){arr[j][i] = arr[j+k][i];arr[j+k][i] = 0;change = truebreak;}}}}}this.setData({numbers:arr})this.storeScore()return change},//随机插入randInsert: function(){var arr = this.data.numbers//随机2或4var num = Math.random() < 0.8 ? 2 : 4//计算随机位置var zeros = [];for(var i = 0; i < 4; i++){for(var j = 0; j < 4; j++){if(arr[i][j] == 0){zeros.push([i, j]);}}}var position = zeros[Math.floor(Math.random() * zeros.length)];arr[position[0]][position[1]] = numthis.setData({numbers:arr})//this.checkGame()},checkGame: function(){var arr = this.data.numbersfor(var i = 0; i < 4; i++){for(var j = 0; j < 4; j++){if(arr[i][j] == 0) return;}}for(var i = 0; i < 3; i++){for(var j = 0; j < 3; j++){if(arr[i][j] == arr[i+1][j] || arr[i][j] == arr[i][j+1]) return;}}for(var j = 0; j < 3; j++){if(arr[3][j] == arr[3][j+1]) return;if(arr[j][3] == arr[j+1][3]) return;}this.setData({modalHidden: false,})},modalChange:function(){this.setData({score: 0,numbers:[[0,0,2,2],[0,2,4,0],[0,4,0,0],[0,0,0,0]],modalHidden: true,})},modalCancle:function(){this.setData({modalHidden: true,})},
})

每日分享一个小程序源码

源码地址:https://wheart.cn/so/home?m=dw&rid=7cdc5eff-d47b-11ed-96fa-52540016e6ac


http://chatgpt.dhexx.cn/article/qKKdUkT9.shtml

相关文章

微信小程序源码获取(附工具的下载)

在很多时候我们需要对微信小程序的页面样式进行借鉴。所以我们需要对它进行反向破解。下面是反向破解的流程图 第一种是对微信电脑桌面小程序进行破解&#xff1a; 只要你登录电脑wx并使用过小程序&#xff0c;那么对应的路径下的WeChat Files\Applet下就会产生很多.wxapkg结…

微信小程序源码反编译

一、前言 我百度了各种关于小程序地反编译教程&#xff0c;但是感觉都不太适合像我这样地初学小白&#xff0c;踩了挺多坑。在这里把我重新简化好的&#xff0c;快速地获取一个微信小程序源码的方式记录下来。 二、简单聊一下xxxxx.wxapkg 先来想想一个很简单的问题&#xf…

一键生成动漫头像微信小程序源码

一键生成动漫头像微信小程序源码&#xff0c;只需要上传一张图片&#xff0c;即可在线由AI生成一张动漫头像&#xff0c;非常的Nice&#xff01; PS&#xff1a;使用国一个免费AI接口&#xff0c;不保证该接口能永久使用。 下载 https://pan.baidu.com/s/1P6yyjNdi1-HiLi7aMdnV…

1000个微信小程序源码分享

文章目录 微信小程序源代码获取开发账号注册 小程序部分源码展示程序展示 微信小程序 现在的微信小程序非常火爆&#xff0c;网上也有很多学习资源&#xff0c;但是源码资源还是很少的。其实在学习开发微信小程序的时候如果有源码可以供我们借鉴&#xff0c;学习效率也会成倍的…

2048小游戏微信小程序源码

哈喽&#xff01;大家好&#xff0c;我是HappyGirl快乐女孩&#xff0c;最爱海贼王&#x1f49e;&#x1f49e;&#x1f49e; 是一位爱好技术的【技术Fans】&#xff01;&#x1f61c;&#x1f61c;&#x1f61c; &#x1f49e;&#x1f49e;&#x1f49e; 如果有对技术感兴趣的…

发卡系统微信小程序源码

发卡系统微信小程序源码&#xff0c;带流量主广告。源码花钱买来的&#xff0c;已测试完美运行&#xff0c;搭建简单&#xff0c;功能完善。 可开流量主&#xff0c;看广告领取&#xff0c;也可以直接对接官方支付&#xff0c;非云开发。 下载&#xff1a; https://pan.baidu.c…

Github微信小程序源码

微信小程序开发目前可以说是非常火热的&#xff0c;很多小伙伴都在学习这方面的知识。本文将为大家带来众多微信小程序的实例源码&#xff0c;小伙伴们可以根据源码来进行进一步学习。 源码使用方法&#xff1a; 1、克隆项目代码到本地&#xff08;git应该都要会哈&#xff0…

天气微信小程序源码,附上线教程

博主之前发布过一篇文章&#xff0c;微信小程序源码合集500套。不少友友反馈很多都用不了&#xff0c;这里博主给大家道个歉&#xff0c;因为博主也是花钱网上收集到的源码&#xff0c;来给大家免费下载&#xff0c;内容之多也不可能一个个去测试它的可用性。而且博主发现很多对…

获取微信小程序源码教程

最近在研究微信小程序&#xff0c;网上很多的小程序都是可以借鉴的&#xff0c;那么如何获取源码就很重要了 目录 1.安装对应环境 &#xff08;Node,js&#xff09; 2.下载反编译脚本 3.下载安卓模拟器获取微信小程序反编译文件 4.反编译 1.安装对应环境 &#xff08;Node…

100个2022实用微信小程序源码分享

微信小程序 微信小程序已经火爆到人人开发&#xff0c;人人都是码农&#xff0c;网上也有很多学习资源&#xff0c;但是源码资源还是很少的。其实在学习开发微信小程序的时候如果有源码可以供我们借鉴&#xff0c;学习效率也会成倍的增加。 无论是前端开发&#xff0c;还是后端…

抓取微信小程序源码教程,扒微信小程序文件等

前言&#xff1a; 想成为一名微信小程序的开发者&#xff0c;前端思路的学习和安全意识是非常有必要的&#xff0c;故务必掌握小程序反编译技能。这里用到了2个工具《包解密》与《反编译》&#xff08;非原创&#xff0c;均来自网上的大佬&#xff09;&#xff0c;特别适合新手…

2022 新版UI界面 影视微信小程序源码 附教程

2022 新版UI界面 影视微信小程序源码 附教程 源码简介源码演示源码下载 源码简介 2022 新版UI界面 影视微信小程序源码 附教程 环境PHP7.0 — fileinfo–Redis–SG11 MySQL5.5 Apache2.4 添加站点php7.0—-创建ftp—-上传后端文件《后端文件修改&#xff0c;/maccms/wxapi/con…

微信小程序源码扒取

有时候看到一个有趣的小程序&#xff0c;总想去研究研究。就像把看看他们的源码。本文记录如何获取一个小程序的源码。 获取小程序的包 原理&#xff1a;小程序的包形如&#xff1a;xxxx.wxapkg。在加载一个小程序后&#xff0c;会将小程序的包拉到本地&#xff0c;所以可以通…

开源微信小程序源码新版及教程

微信于2017年推出其小程序和小游戏平台。2019年3月&#xff0c;腾讯向全球开发者开放其小游戏平台。      源码合集&#xff1a;y.wxlbyx.icu      微信小程序源码的价值何在&#xff1f;      微信每月拥有超过 10 亿的活跃用户。它是整个国家的主要通信来源&…

逆向获取微信小程序源码教程

最近看上了一个小程序&#xff0c;想着走走捷径&#xff0c;以下是我的步骤。 一.获取小程序包 1.安装安卓模拟器&#xff0c;我用的是夜神 2.拿包 打开微信&#xff0c;运行微信小程序&#xff0c;然后打开文件管理器&#xff0c;根据时间顺序定位到小程序目录 /data/data/…

获取微信小程序源码

** 获取微信小程序源码 ** 暑假白天上班&#xff0c;晚上抽点时间学习下微信小程序的知识。自己写了一些小程序&#xff0c;总是感觉写的界面不简洁&#xff0c;不美观&#xff0c;看到一些官方的小程序&#xff0c;再看看自己的&#xff0c;哎&#xff0c;自己真的是很菜&am…

微信小程序源码1000套

简介 不懂开发&#xff0c;但又想拥有自己的小程序怎么办&#xff1f;或者想要基于某个小程序框架做二次开发&#xff1f;如下截图&#xff0c;免费提供1000套微信小程序源码包合集&#xff08;收集过程中发现网上资源大部分居然还要收费&#xff0c;真的很无语&#xff0c;人…

收集整理的125个微信小程序模板源码

介绍&#xff1a; 分享本站收集整理的125个微信小程序模板源码&#xff0c;涵盖各行各业的微信小程序功能界面设计模板&#xff0c;也有各种小程序开发的一些特效代码&#xff0c;一共125个&#xff0c;有需要的自取。 网盘下载地址&#xff1a;https://pan.baidu.com/s/1Q4_…

2000多套微信小程序源码-史上最全的不同行业的源码集合

前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 很多伙伴学习小程序不知怎么开始&#xff0c;我准备了2000多套小程序源码&#xff0c;基本覆盖各个行业&#xff0c;大家有需要的可以借鉴学习~ 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面…

微信小程序源码精选250套

前言 现在的微信小程序非常火爆&#xff0c;网上也有很多学习资源&#xff0c;但是源码资源还是很少的。其实在学习开发微信小程序的时候如果有源码可以供我们借鉴&#xff0c;学习效率也会成倍的增加。 搭建或者想要基于某个小程序框架做二次开发 这里已收集整理好, 类目涵盖&…