微信小游戏之 三消(一)

                     

首先设定一下 单个 方块 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3269214.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

磨煤机加载油站系统比例阀放大器

磨煤机液压系统是火力发电厂中不可或缺的重要组成部分,它主要负责为磨煤机提供并调节必须的碾磨压力。这一系统的核心功能是通过BEUEC比例放大器配套比例溢流阀精确控制,以适应煤炭处理过程中对压力的不同需求,确保煤炭的有效碾磨及火力发电的…

C语言 | Leetcode C语言题解之第275题H指数II

题目&#xff1a; 题解&#xff1a; int hIndex(int* citations, int citationsSize) {int left 0, right citationsSize - 1;while (left < right) {int mid left (right - left) / 2;if (citations[mid] > citationsSize - mid) {right mid - 1;} else {left mi…

Jenkins持续集成软件

1.什么是jenkins? jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;提供一个开放易用的软件平台&#xff0c;时软件项目可以进行持续集成。 通俗来说&#xff1a;Jenkins软件就是自动拉取git远程仓库所…

Java 面试相关问题(下)——JVM相关问题GC相关问题

1. 类加载1.1 类的生命周期说一下&#xff1f;1.2 介绍下生命周期中的加载&#xff1f;1.3 介绍下生命周期中的验证&#xff1f;1.4 介绍下生命周期中的准备&#xff1f;1.5 介绍下生命周期中的解析&#xff1f;1.6 介绍下生命周期中的初始化&#xff1f;1.7 介绍下生命周期中的…

秋叶大神中文版Stable Diffusion下载安装使用教程

Stable Diffusion是什么&#xff1f; Stable Diffusion是一款开源的AI绘画软件&#xff0c;于2022年发布&#xff0c;由CompVis、Stability AI和LAION的研究人员创建。该软件具有出色的图像生成功能&#xff0c;使用户能够从头开始绘制作品&#xff0c;也可以使用现有的图像进…

花几千上万学习Java,真没必要!(三十)

异常&#xff1a; 测试测试代码1&#xff1a; package catchtest.com; public class TryCatchExample { //使用一个或多个 catch 块捕获并处理异常。public static void main(String[] args) { try { // 尝试执行的代码块 int result 10 / 0; // 引发 ArithmeticExceptio…

AI如何助力UI设计师互联网学习?

嘿&#xff0c;咱 UI 设计师想用互联网学习&#xff0c;可真不容易&#xff01;资料筛选难&#xff0c;学习资源杂&#xff0c;真让人头疼。不过还好有 AI 工具能帮忙&#xff0c;提效率&#xff01; 这一年多来&#xff0c;我在 ai123.cn 这个平台上&#xff0c;可算是找到了…

【LeetCode、牛客】链表分割、链表的回文结构、160.相交链表

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构 &#x1f4da;本系列文章为个人学…

Web网页端IM产品RainbowChat-Web的v7.1版已发布

一、关于RainbowChat-Web RainbowChat-Web是一套Web网页端IM系统&#xff0c;是RainbowChat的姊妹系统&#xff08;RainbowChat是一套基于开源IM聊天框架 MobileIMSDK (Github地址) 的产品级移动端IM系统&#xff09;。 ► 详细介绍&#xff1a;http://www.52im.net/thread-2…

WEB前端11-Vue2基础01(项目构建/目录解析/基础案例)

Vue2基础(01) 1.Vue2项目构建 步骤一&#xff1a;安装前端脚手架 npm install -g vue/cli步骤二&#xff1a;创建项目 vue ui步骤三&#xff1a;运行项目 npm run serve步骤四&#xff1a;修改vue相关的属性 DevServer | webpack //修改端口和添加代理 const { defineCo…

AccessLog| 一款开源的日志分析系统

前言 ClkLog作为分析系列产品中的前端数据分析系统&#xff0c;通过采集前端应用数据进行用户行为分析。其社区版从23年9月发布至今已有近一年&#xff0c;商业版也上线快半年&#xff0c;感谢大家一直以来的关注和支持&#xff0c;ClkLog会继续做好产品升级与服务&#xff0c;…

中小企业提升销售效率的10款CRM系统

本文介绍了10款CRM系统&#xff1a;纷享销客、Zoho CRM、Apptivo、简信CRM、浪潮CRM、HubSpot CRM、八百客、简道云、Pipedrive、Insightly。 在选择CRM系统时&#xff0c;中小企业常常面临着预算限制和功能需求之间的矛盾&#xff0c;许多企业希望找到既经济实惠又功能强大的解…

重生之“我打数据结构,真的假的?”--3.栈和队列

1.栈和队列的基本概念 1.1 栈 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则…

深度剖析:品牌推广中的专业外包服务商策略

回顾历史&#xff0c;从农业革命到工业革命&#xff0c;再到如今的信息技术革命&#xff0c;每一次社会生产力的飞跃都伴随着分工的细化和专业化的提升。亚当斯密在《国富论》中提出的“分工论”早已揭示了这一真理&#xff1a;通过分工&#xff0c;每个人专注于自己擅长的领域…

计算机网络(Wrong Question)

一、计算机网络体系结构 1.1 计算机网络概述 D 注&#xff1a;计算机的三大主要功能是数据通信、资源共享、分布式处理。&#xff08;负载均衡、提高可靠性&#xff09; 注&#xff1a;几段链路就是几段流水。 C 注&#xff1a;记住一个基本计算公式&#xff1a;若n个分组&a…

昇思25天学习打卡营第01天|昇思MindSpore大模型基础j介绍

昇思MindSpore和华为昇思MindSpore大模型学习打卡系列文章&#xff0c;本文仅供参考~ 文章目录 前言一、昇思MindSpore是什么&#xff1f;二、执行流程三、设计理念四、层次结构五、Huawei昇腾AI全栈 前言 随着计算机大模型的不断发展&#xff0c;Ai这门技术也越来越重要&#…

HarmonyOS 自定义节点

1. HarmonyOS 自定义节点 1.1. 概念 官方文档&#xff08;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-user-defined-capabilities-V5&#xff09;   自定义能力是HarmonyOS ArkUI开发框架提供的对UI界面进行开发和设计的能力。现有的自定义…

数模打怪(八)之图论模型

一、作图 图的数学语言描述&#xff1a; G( V(G), E(G) )&#xff0c;G&#xff08;graph&#xff09;&#xff1a;图&#xff0c;V&#xff08;vertex&#xff09;&#xff1a;顶点集&#xff0c;E&#xff08;edge&#xff09;&#xff1a;边集 1、在线作图 https://csac…

《牛角型电解电容和螺栓型电解电容》

牛角型电解电容之所以被称为牛角型&#xff0c;是因为引出端子的形状类似牛角。 螺栓型电解电容被称为螺栓型&#xff0c;是因为其引出端子的形状像螺栓。 牛角型电解电容和螺栓型电解电容&#xff0c;虽然也是电容&#xff0c;但在普通电路板上用的很少&#xff0c;更多是安…

Linux网络-wget命令

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注我&#xff0c;我尽量把自己会的都分享给大家&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux服务器作为一个常用的网络服务器&#xff0c;主要的作用就是向客户端提供网络…