当前位置: 首页 > news >正文

微信小游戏之 三消(一)

                     

首先设定一下 单个 方块 cell 类:

类定义和属性

  • `init` 方法 用于初始化方块,接收游戏实例、数据、宽度、道具类型和位置。

  • `onWarning` 方法 设置警告精灵的帧,并播放闪烁动作,用于显示方块的警告状态。

  •  `grow` 方法 根据传入的方向(上下左右),调整方块的大小,实现方块的增长效果。

  • - `bindEvent` 方法绑定触摸事件到方块节点。

  • - `onTouched` 方法处理触摸事件,包括用户点击和被其他方块触发的情况。根据方块状态和游戏状态,执行相应的逻辑。

  • `onBlockPop` 方法 在方块被消除时调用,处理连锁反应和道具触发的逻辑。

  • `playFallAction` 方法 控制方块下降的动画,更新方块的位置。

  • - `playStartAction` 控制方块生成时的动画。

  • - `playDieAction` 控制方块消失时的动画,并返回一个 Promise,以便在动画完成后执行其他操作。

  • - `surfaceAction` 控制方块浮出水面的动画。

  • - `generatePropAction` 可能是用于生成道具的动画,但具体实现为空。

init 方法是这段脚本中用于初始化方块实例的关键方法:

init(g, data, width, itemType, pos) {this._game = g;  // 游戏实例this._status = 1;  // 初始化方块状态为可触发点击if (pos) {// 如果提供了位置参数,则使用}pos = pos || {x: data.x,y: data.y};this._itemType = itemType || 0;  // 初始化道具类型this.warningType = 0;  // 初始化警告类型this.isPush = false;  // 初始化是否被推动this.bindEvent();  // 绑定事件this.color = data.color || Math.ceil(Math.random() * 4);  // 初始化方块颜色this.colorSprite = this.node.getChildByName('color').getComponent(cc.Sprite);// 设置方块颜色精灵的帧this.colorSprite.spriteFrame = itemType ? g.propSpriteFrame[(itemType - 1) * 4 + this.color - 1] : this._game.blockSprite[this.color - 1];this.warningSprite.spriteFrame = '';  // 初始化警告精灵的帧为空this._width = width;  // 保存方块宽度this._controller = g._controller;  // 获取控制器this.lightSprite.node.active = false;  // 初始时关闭光效精灵// 计算方块宽度this.node.width = this.node.height = width;this.startTime = data.startTime;  // 初始化开始时间this.iid = data.y;  // 初始化方块在网格中的行索引this.jid = data.x;  // 初始化方块在网格中的列索引this.node.x = -(730 / 2 - g.gap - width / 2) + pos.x * (width + g.gap);this.node.y = (730 / 2 - g.gap - width / 2) - pos.y * (width + g.gap);this.node.rotation = 0;  // 初始化方块旋转角度为0this.playStartAction();  // 播放开始动画
},

grow 方法是方块在游戏中进行变形或增长时的关键逻辑,它使得方块能够根据游戏规则在特定方向上扩展:

grow(type) { //1234 代表上、下、左、右switch (type) {case 1:// 如果方块不是在水平增长状态,并且可以向上增长if (this.growType != 2) {this.colorSprite.node.height += this._game.gap * 2this.colorSprite.node.y += this._game.gapthis.growType = 1}breakcase 2:// 如果方块不是在水平增长状态,并且可以向下增长if (this.growType != 2) {this.colorSprite.node.height += this._game.gap * 2this.colorSprite.node.y -= this._game.gapthis.growType = 1}breakcase 3:// 如果方块不是在垂直增长状态,并且可以向左增长if (this.growType != 1) {this.colorSprite.node.width += this._game.gap * 2this.colorSprite.node.x -= this._game.gapthis.growType = 2}breakcase 4:// 如果方块不是在垂直增长状态,并且可以向右增长if (this.growType != 1) {this.colorSprite.node.width += this._game.gap * 2this.colorSprite.node.x += this._game.gapthis.growType = 2}break}
},

详细介绍可以链接

微信小游戏之三消(一) (qq.com)icon-default.png?t=N7T8https://mp.weixin.qq.com/s/SUPaWJ8bm5wrtLPZLiktjQ?token=1657907189&lang=zh_CN

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C#华为OD笔试题*3
  • Spring Core——资源加载与访问(Resource)
  • 优思学院|如何透过客户忠诚度分析决定六西格玛改善项目?
  • 01、爬虫学习入门
  • C语言数组练习--扫雷
  • 【目标检测】Yolo5基本使用
  • 【SQL 新手教程 1/20】SQL语言MySQL数据库 简介
  • 为什么 OPC UA 很重要
  • Redis与缓存
  • go-kratos 学习笔记(8) redis的使用
  • OpenCV 图像基础
  • 养宠空气净化器哪家好?养宠空气净化器质量好的牌子推荐
  • Ubuntu一键导入openVPN配置文件
  • PHP多功能投票系统源码小程序
  • 用来跳转的<a> 标签,原来还有这么多强大又实用的功能
  • CAP 一致性协议及应用解析
  • isset在php5.6-和php7.0+的一些差异
  • Java面向对象及其三大特征
  • leetcode386. Lexicographical Numbers
  • Linux各目录及每个目录的详细介绍
  • MobX
  • MQ框架的比较
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • pdf文件如何在线转换为jpg图片
  • rabbitmq延迟消息示例
  • React-redux的原理以及使用
  • Redis中的lru算法实现
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 前端代码风格自动化系列(二)之Commitlint
  • 浅谈Golang中select的用法
  • 区块链共识机制优缺点对比都是什么
  • 区块链将重新定义世界
  • 我有几个粽子,和一个故事
  • 我这样减少了26.5M Java内存!
  • 一天一个设计模式之JS实现——适配器模式
  • 原生 js 实现移动端 Touch 滑动反弹
  • 进程与线程(三)——进程/线程间通信
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #Z2294. 打印树的直径
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)计算机毕业设计高校学生选课系统
  • (一) 初入MySQL 【认识和部署】
  • (转)平衡树
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .Net 6.0--通用帮助类--FileHelper
  • .NET C# 使用GDAL读取FileGDB要素类
  • .net6 webapi log4net完整配置使用流程
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [383] 赎金信 js