首页 > 其他分享 >微信小游戏之 三消(一)

微信小游戏之 三消(一)

时间:2024-07-26 17:55:11浏览次数:15  
标签:node 初始化 width 微信 gap 三消 小游戏 ._ 方块

                     

首先设定一下 单个 方块 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;  // 初始化方块旋转角度为0
    this.playStartAction();  // 播放开始动画
},

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

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

详细介绍可以链接

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

标签:node,初始化,width,微信,gap,三消,小游戏,._,方块
From: https://blog.csdn.net/heyuchang666/article/details/140721498

相关文章

  • 抖音私信卡片跳转微信教程
    以下是使用W外链制作抖音私信卡片跳转微信的一般教程:  ​**步骤一:准备工作**1.注册并登录W外链平台账号。2. 并获取相关的链接或二维码。**步骤二:创建跳转链接**1.在W外链平台中,选择创建新的跳转链接。2.输入您的微信公众号或小程序的链接。**步骤三:生成私信卡片**......
  • 免费分享一套微信小程序投票评选系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本
    大家好,我是java1234_小锋老师,看到一个不错的微信小程序投票评选系统(SpringBoot后端+Vue管理端),分享下哈。项目视频演示【免费】微信小程序投票评选系统(SpringBoot后端+Vue管理端)Java毕业设计_哔哩哔哩_bilibili项目介绍社会发展日新月异,用计算机应用实现数据管理功能......
  • 企业微信ipad协议:提升群管理效率
    产品说明`企业微信ipad协议`接口提供了企业微信的所有功能,调用简单,ipad协议摆脱了hook形式的需要开启pc客户端的方式,一个服务可支持几百号进行登录,并且不影响pc手机端登录状态,实现三端同时在线;>企业微信hook企业微信iPad协议企微hook接口企微第三方接口企微ipad协议......
  • 基于SpringBoot+Vue+Uniapp的自驾游微信小程序设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图论文参考技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我自己的网站自己的小程序(小蔡coding)代码参考数据库参考源码获取前言......
  • 微信小程序之计算器
    在日常生活中,计算器是人们广泛使用的工具,可以帮助我们快速且方便地计算金额、成本、利润等。下面将会讲解如何开发一个“计算器”微信小程序。一、开发思路1、界面和功能“计算器”微信小程序的页面效果如图所示在计算器中可以进行整数和小数的加(+)、减(-)、乘(×)、除(÷......
  • 微信小程序制作整个流程完整教程
    微信小程序制作整个流程完整教程32r.com  发布时间:2023-12-2816:25:18  作者:xx   我要评论本文从小程序注册、小程序信息完善及开发前准备、小程序代码审核与发布、小程序申请微信认证和微信支付、小程序的绑定和关联,这5个方面来为大家介绍微信小程序是怎么制作的......
  • 微信小程序-自定义导航栏
    参考文章:自定义navigationBar顶部导航栏,兼容适配所有机型(附完整案例)|微信开放社区(qq.com)1.设置导航栏样式自定义"navigationStyle":"custom"可以选择在页面json文件设置,也可选择在app.json文件设置,我选择页面配置2.定义想要的导航栏样式.navCustom{position:......
  • 微信小程序批量检测是否被封禁异常PHP代码
             ​      <?php//要检测的appid列表$appids=array('appid1','appid2','appid3');//使用实际的appid//循环调用接口检测小程序状态foreach($appidsas$appid){    $url='https://down.ychengsnsm.com/xcx/checkxcx.php?appid=......
  • 【微信小程序开发】从0-1注册、下载、安装、开发保姆篇教程(附Demo源码)
    文章目录前期准备注册登陆下载安装创建项目项目结构版本管理程序页面生命周期新增页面功能实现本篇小结更多相关内容可查看前期准备要有前端开发基础,已安装NodeJS,若未安装请参考NodeJS安装并生成Vue脚手架(保姆级)可参考小程序开发官方文档进行学习,本文也是参考......
  • 免费分享一套微信小程序图书馆座位预约管理系统(SpringBoot后端+Vue管理端)【论文+源
    大家好,我是java1234_小锋老师,看到一个不错的微信小程序图书馆座位预约管理系统(SpringBoot后端+Vue管理端),分享下哈。项目介绍随着移动互联网技术的飞速发展和智能设备的普及,图书馆服务模式正在经历深刻的变革。本论文旨在探讨如何利用微信小程序这一便捷高效的平台,开发一款......