这两天心血来潮,用微信小程序写了一个简单的2048,欢迎各位老铁围观,提出宝贵意见。这里我从0到1赘述一下个人实现流程:

  首先去微信公平台(https://mp.weixin.qq.com/)注册一个小程序账号,注意:一个身份证好像只能注册5个小程序.然后登陆进入后台,进行相应的名称、头像等设置。我的如下:

  然后在开发设置选项可以查看AppID和AppSecret,做好这些准备工作,就可以打开你的微信开发工具进行编程的奇幻之旅了。打开开发工具,注意最好选择一个空的目录,然后粘贴你的AppID,选择快速启动就可以了。恭喜你可以运行小程序看默认效果了。

  接下来,清空index.wxml,粘贴上我的代码(可以在 https://github.com/WangHao1221/mimi2048.git 荡下来,最好送我一颗小星星,谢啦!),在这里说一下,我把app.js做了简单的修改,用来获取用户信息,你也可以在app.json文件修改成你想要的方式,然后是在app.wxss里面加了一个简单的默认样式(注意我在wxss里面加的注释!)。注意:在config.js文件中我加了一句设置:"disableScroll": true,禁止页面滚动!

  最后是index.wxss和index.js这两个文件了,核心逻辑在js,这里我简单分析我的思路:

  1.首先是头部,获取头像昵称、然后是根据改昵称,设置最佳分数。

  2.头部布局问题,自己可以随意设置,重新开始按钮先设置上。

  3.也是最重要的,4*4的方格实现(wx:for)。

  4.onLoad里面要做的事情:获取用户信息;初始化方格数字;在方格中产生两个随机位置并赋值(2/4),这里一定要防止两次出现的位置相同或者该位置已经有数字!最后是初始化分数(this.setData()方法,既可以修改变量值还可以更改model)。

  5.手势,根据touch进行方向的判断(如果是点击,则不产生新的随机数)

    这里是核心,多啰嗦一点:触摸开始的时候获取起始点,然后是在move的时候判断是向哪个方向滑动,因为根据不同的方向,入参不一样,最后是end方法,我这里是把方格用0~15的下标进行标记,每一个数字带代表方格的位置。比如你向左滑动,那也就是说右边3列数字要向左合并或者移动,比如下面代码:0、4、8、12即为最左侧方格。

    this.mergeMove(3, 2, 1, 0)
this.mergeMove(7, 6, 5, 4)
this.mergeMove(11, 10, 9, 8)
this.mergeMove(15, 14, 13, 12)

其他方向,以此类推。mergeMove是我封装的处理移动或者合并的方法,因为无论哪个方向,都会进行相同院里的操作。在mergeMove方法里面,要更新当前分数,判断当前游戏是否结束(方格满了,并且不能滑动了!),结束的时候,更新最佳成绩。最后附上游戏截图:

     

  这里就介绍这么多了,当然这里面会有一些bug,欢迎老铁们给出意见,还有就是这里没有服务器,所以肯定总欠缺一些东西,后续我会更新的。欢迎留言评论。

微信小程序实现简单的2048的更多相关文章

  1. 微信小程序支付简单小结与梳理

    前言 公司最近在做微信小程序,被分配到做支付这一块,现在对这一块做一个简单的总结和梳理. 支付,对于购物来说,可以说是占据了十分重要的一块,毕竟能收到钱才是重点. 当然在开发之前,我们需要有下面这些东 ...

  2. 微信小程序实现简单的树形图treeview

    H5有很多树形图(树状图)的组件,echarts也有.比如像bootstrap的treeview,定制性很强.不过这些都无法方便地为小程序所用,除非整个页面用H5搭建再用webview框进去,有点粗暴 ...

  3. [转]微信小程序支付简单小结与梳理

    本文转自:https://www.cnblogs.com/onetwo/p/6667424.html 公司最近在做微信小程序,被分配到做支付这一块,现在对这一块做一个简单的总结和梳理. 支付,对于购物 ...

  4. 微信小程序_简单组件使用与数据绑定

    简单的数据传值 官方文档:传送门 点击"按钮"测试后,按钮文本改变,下方text文本改变,通过console.log()在输出台中打印按钮文本信息 程序结构 Page({ //页面 ...

  5. 微信小程序之简单记账本开发记录(七)

    记账本已经可以实现添加和删除的功能 现在只需要将上述步骤重复一遍便可将另一个界面做出来. 大体上已制作完成,如果在细节上有变动会在这一篇更新 总体来说,这个作业让我对微信小程序的开发有了更多地认识,大 ...

  6. 微信小程序之简单记账本开发记录(一)

    下载并安装微信开发者工具 在选择开发记账本程序的时候犹豫着选择android studio还是微信小程序 最后选择了微信小程序,因其便利和快捷. 话不多说,第一步,下载并安装微信开发者工具.下面是教程 ...

  7. 微信小程序之简单记账本开发记录(二)

    1.打开开发者工具 2.从微信公众平台上获取到appid,或者使用测试号. 项目的大致目录如下: 一个小程序主体部分由三个文件组成,必须放在项目的根目录中 以app为开头的文件名用来布置作用于整个项目 ...

  8. 微信小程序一些简单的快捷键

    常用快捷键 格式调整 Ctrl+S:保存文件Ctrl+[, Ctrl+]:代码行缩进Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块Ctrl+C Ctrl+V:复制粘贴,如果没有选 ...

  9. 微信小程序 table 简单测试

    <view class='AutoTable'> <view id='AutoTableItem'> <block wx:for="{{array}}" ...

随机推荐

  1. 一次线上服务高 CPU 占用优化实践 (转)

    线上有一个非常繁忙的服务的 JVM 进程 CPU 经常跑到 100% 以上,下面写了一下排查的过程.通过阅读这篇文章你会了解到下面这些知识. Java 程序 CPU 占用高的排查思路 可能造成线上服务 ...

  2. php程序员经验

    PHP 学习计划流程2008-10-22 17:23PHP 学习计划流程1.看教程 (2-3月)大概1天1个章节,比如<PHP圣经>有32章,1个多月就看完了,当然后面的章节每章1天肯定看 ...

  3. shell脚本命令

    http://man.linuxde.net/shell-script   从键盘或文件中获取标准输入:read命令 文件的描述符和重定向 数组.关联数组和别名的使用 函数的定义.执行.传参和递归函数 ...

  4. 虫师Selenium2+Python_5、自动化测试模型

    P138--模块化驱动测试实例 P142--参数化搜索关键字 from selenium import webdriver search_text = ['python','中文','text'] # ...

  5. 国产操作系统deepin安装与配置Node-RED环境

    1.1. 测试机配置清单 部件名称 版本号 备注 处理器 Intel Core i5 3320M 显卡 自带集显 内存 8G DDR3单通道 显示插口 VGA*1,HDML*1 1.2. 系统安装及配 ...

  6. PHP程序员可以这样准备找工作

    你好,是我琉忆.PHP程序员面试笔试图书系列作者. 今天就跟大家聊聊作为一个PHP程序员,每年的跳槽季都应该怎么准备一番. 其实普遍的跳槽季总的就有2个. 分别是新年后的3-4月,还有9-10月份. ...

  7. 5.1 Paralles 为虚拟机设置静态ip

    一.配置独立ip的环境 前面研究了k8s的组件,核心概念,网络模型,都了解了一遍,现在就要进入实战了,摆在面前的一座大山,必须克服才行---虚拟机搭建,及网络环境配置. 先说说本文的运行环境: mac ...

  8. Solution -「UOJ #450」复读机

    \(\mathcal{Description}\)   Link.   求从 \(m\) 种颜色,每种颜色无限多的小球里选 \(n\) 个构成排列,使得每种颜色出现次数为 \(d\) 的倍数的排列方案 ...

  9. kubernetes之数据管理

    volume emptyDir [machangwei@mcwk8s-master ~]$ kubectl apply -f mcwVolume1.yml #部署emptydir pod/produc ...

  10. Aluminum: An Asynchronous, GPU-Aware Communication Library Optimized for Large-Scale Training of Deep Neural Networks on HPC Systems

    本文发表在MLHPC 2018上,主要介绍了一个名为Aluminum通信库,这个库针对Allreduce做了一些关于计算通信重叠以及针对延迟的优化,以加速分布式深度学习训练过程. 分布式训练的通信需求 ...