广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序实现2048小游戏的详细过程
  • 120
分享到

微信小程序实现2048小游戏的详细过程

2024-04-02 19:04:59 120人浏览 安东尼
摘要

效果图 实例代码 今天我们要用微信小程序实现2048小游戏,效果图如上面所示。游戏的规则很简单,你需要控制所有方块向同一个方向运动,两个相同数字方块撞在一起之后合并成为他们的和,每

效果图

实例代码

今天我们要用微信小程序实现2048小游戏,效果图如上面所示。游戏的规则很简单,你需要控制所有方块向同一个方向运动,两个相同数字方块撞在一起之后合并成为他们的和,每次操作之后会随机生成一个2或者4,最终得到一个“2048”的方块就算胜利了。


 // 构造一个空的矩阵[[null,..,size.length],[]]
    empty: function() {
        var cells = [];

        for (var x = 0; x < this.size; x++) {
            var row = cells[x] = [];

            for (var y = 0; y < this.size; y++) {
                row.push(null);
            }
        }

        // [[{x:0,y:0},{x:0,y:1}],[]]
        return cells;
    },

首先我们需要做的是把游戏主体分成16个格子。用Grid代表这些格子,然后这些格子还有一下这些操作:


   // 在空格子中随机挑选出一个格子
    randomAvailableCell: function() {
    
    // 获取可填充的格子坐标
    availableCells: function() {
    
    // 是否存在空单元格
    cellsAvailable: function() 
    
    
    cellContent: function(cell) {

上面的函数都是为了使接下来开发更加简便,这样子就可以直接操作了。


 // 初始化数据
    addStartTiles: function() {
        for (var x = 0; x < this.startTiles; x++) {
            this.addRandomTiles();
        }
    },

    // 在一个随机单元格中随机填充2或4
    addRandomTiles: function() {

        if (this.grid.cellsAvailable()) {
            var value = Math.random() < 0.9 ? 2 : 4;
            var cell = this.grid.randomAvailableCell();
            var tile = new Tile(cell, value);
            this.grid.insertTile(tile); // 插入一个单元格
        }

    },

一开始进行初始化数据,以90%机率产生2,以10%机率产生4。


touchStart: function(events) {

        // 多指操作
        this.isMultiple = events.touches.length > 1;
        if (this.isMultiple) {
            return;
        }

        var touch = events.touches[0];

        this.touchStartClientX = touch.clientX;
        this.touchStartClientY = touch.clientY;

    },

    touchMove: function(events) {
        var touch = events.touches[0];
        this.touchEndClientX = touch.clientX;
        this.touchEndClientY = touch.clientY;
    },

    touchEnd: function(events) {
        if (this.isMultiple) {
            return;
        }

        var dx = this.touchEndClientX - this.touchStartClientX;
        var absDx = Math.abs(dx);
        var dy = this.touchEndClientY - this.touchStartClientY;
        var absDy = Math.abs(dy);

        if (Math.max(absDx, absDy) > 10) {
            var direction = absDx > absDy ? (dx > 0 ? 1 : 3) : (dy > 0 ? 2 : 0);

            var data = this.GameManager.move(direction) || {
                grids: this.data.grids,
                over: this.data.over,
                won: this.data.won,
                score: this.data.score
            };

        }

进行游戏手势开始移动和移动结束的操作,上面这一段主要是进行了手指移动方向的判断,最后是判断出了direction,传入this.GameManager.move(direction)进行移动操作。

这里面的难点在于数据结构的构建,只要把格子弄明白就比较好办。然后就是手指滑动的判断了,上面代码也比较清楚地展现了。

总结

到此这篇关于微信小程序实现2048小游戏的文章就介绍到这了,更多相关微信小程序2048小游戏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 微信小程序实现2048小游戏的详细过程

本文链接: https://www.lsjlt.com/news/137212.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序实现2048小游戏的详细过程
    效果图 实例代码 今天我们要用微信小程序实现2048小游戏,效果图如上面所示。游戏的规则很简单,你需要控制所有方块向同一个方向运动,两个相同数字方块撞在一起之后合并成为他们的和,每...
    99+
    2022-11-12
  • 小程序怎么实现2048小游戏
    这篇文章主要介绍“小程序怎么实现2048小游戏”,在日常操作中,相信很多人在小程序怎么实现2048小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”小程序怎么实现2048小游戏”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-26
  • 微信小程序实现猜数字小游戏的实战过程
    目录功能介绍效果图 一.首页效果图(index03)的代码二.开始游戏页面(index)代码三.游戏规则页面(index01)代码 四.关于其他页面(index02)代码 总结功能介...
    99+
    2022-11-12
  • 微信小程序实现弹球游戏
    本文实例为大家分享了微信小程序实现弹球游戏的具体代码,供大家参考,具体内容如下 实验内容: 小球按照随机的角度直线运动,如果碰到四壁则反弹。你们不需要做游戏计时、设置小球及背景颜色等...
    99+
    2022-11-13
  • 微信小程序实现扫雷游戏
    本文实例为大家分享了微信小程序实现扫雷游戏的具体代码,供大家参考,具体内容如下 实验小提醒,打开微信小程序模板时,一定要看清楚,要选js模板,不要选ts模板,因为ts中对数据类型检查...
    99+
    2022-11-13
  • 微信小程序实现拼图游戏
    本文实例为大家分享了微信小程序实现拼图游戏的具体代码,供大家参考,具体内容如下 页面展示 项目链接 微信小程序实现拼图游戏 项目设计 首页面 wxml <!--inde...
    99+
    2022-11-12
  • 微信小程序如何实现翻牌小游戏
    这篇文章主要介绍了微信小程序如何实现翻牌小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下一、新建一个quick start项...
    99+
    2022-10-19
  • 微信小程序实现狼人杀小游戏的示例详解
    目录一、项目展示二、首页三、游戏页四、特殊角色五、源码一、项目展示 狼人杀是一款多人参与的,通过语言描述推动、较量口才和分析判断能力的策略类桌面游戏 玩家人数适于4-18人参与 主要...
    99+
    2022-11-13
  • 【小程序】快来开发你的第一个微信小游戏(详细流程)
    🥳 作者:伯子南 😎 坚信: 好记性不如乱笔头,独乐乐不如众乐乐 💪 个人主页:https://blog.csdn.net/qq_34577234spm=1010.2135.3001.54...
    99+
    2023-08-16
    小程序 微信 微信小程序
  • 微信小程序实现贪吃蛇游戏
    本文实例为大家分享了微信小程序实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 一、项目截图 二、源代码 1.WXML 代码如下(示例): <view class='c...
    99+
    2022-11-12
  • 微信小程序实现五子棋游戏
    本文实例为大家分享了微信小程序实现五子棋游戏的具体代码,供大家参考,具体内容如下 效果图 .wxml <view class="title">   <view ...
    99+
    2022-11-13
  • 微信小程序实现井字棋游戏
    本文实例为大家分享了微信小程序实现井字棋游戏的具体代码,供大家参考,具体内容如下 效果图 .wxml <view class="title">   <view w...
    99+
    2022-11-13
  • 微信小程序如何实现拼图游戏
    这篇文章给大家分享的是有关微信小程序如何实现拼图游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下页面展示项目链接微信小程序实现拼图游戏项目设计首页面wxml<!--index.wxml--&g...
    99+
    2023-06-20
  • Android微信小程序如何实现猜数字小游戏
    这篇文章主要介绍“Android微信小程序如何实现猜数字小游戏”,在日常操作中,相信很多人在Android微信小程序如何实现猜数字小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android微信小程序如...
    99+
    2023-06-25
  • uniapp打包成微信小程序的详细过程
    目录一、HbuilderX打包二、发行三、打开小程序体验注意 总结一、HbuilderX打包 选中项目-点击发行(U)- 小程序-(微信仅适用于uniapp)(W) 二、...
    99+
    2022-11-13
  • 微信小程序│ 游戏开发 │连连看游戏
    “连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。“连连看”考验的是各位的眼力,在有限的时间内,只要把所有能连接的相同图案,两个一对地找出来,每找出一对,它们就会自动消失,只要把所...
    99+
    2023-09-23
    游戏 微信小程序 小程序
  • 微信小程序如何实现贪吃蛇游戏
    这篇文章主要介绍微信小程序如何实现贪吃蛇游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先来看看运行效果:具体代码如下:界面布局 pages/snake/snake/snake.w...
    99+
    2022-10-19
  • 微信小程序实现经典window扫雷游戏
    前言 打开手机游戏列表发现了一款经典的扫雷游戏,在玩的过程中发现游戏逻辑应该不难,想着是不是能自己写写这个游戏,后来用了1天实现了整体游戏开发,于是有了这篇文章来总结整体的游戏开发思...
    99+
    2022-11-13
  • 微信小程序如何实现井字棋游戏
    这篇文章主要介绍了微信小程序如何实现井字棋游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序如何实现井字棋游戏文章都会有所收获,下面我们一起来看看吧。效果图.wxml<view cla...
    99+
    2023-06-30
  • 微信小程序如何实现五子棋游戏
    本文小编为大家详细介绍“微信小程序如何实现五子棋游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序如何实现五子棋游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果图.wxml<view&nb...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作