Cocos Creator2D游戏开发(15)---预制体和按钮的绑定以及冷却效果的实现

news2024/9/20 13:17:24

场景: 植物大战僵尸中,种植植物前,要判断状态,只有在阳光充足时才能点击

图片资源:
在这里插入图片描述

  1. 预制体的创建,创建一个空节点命名: CardTemplate,将三张豌豆射手相关的图片拖入 如下图

在这里插入图片描述
其中card_mask图片中的透明度改为150;在这里插入图片描述

  1. 在assets中创建prefab文件夹,将CardTemplate节点直接拖入prefab文件夹,然后就出现了CardTemplate预制体
    在这里插入图片描述
  2. 双击预制体CardTemplate,创建脚本CardTemplate,并将脚本CardTemplate拖入右侧属性检查器中;
    在这里插入图片描述
  3. 在脚本CardTemplate中添加代码
import { _decorator, Component, Node, Sprite } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('CardTemplate')
export class CardTemplate extends Component {


    @property({ type: Node })
    public cardLight: Node = null; // 卡牌亮节点
    @property({ type: Node })
    public cardGrey: Node = null; // 卡牌暗节点
    @property({ type: Sprite })
    public cardMask: Sprite = null; // 卡牌遮罩

    start() {
        this.cardLight.active = true;
        this.cardGrey.active = false;
        this.cardMask.node.active = false;
    }

    update(deltaTime: number) {
        
    }


    onButtonClick(){
        console.log("按钮被点击了")
    }

}

  1. 节点对应绑定,拖过去一一对应
    在这里插入图片描述

  2. 在card_light下,添加button组件
    ClickEvents改为1, 第二个框选择CardTemplate,第三个框选择onButtonClick
    在这里插入图片描述
    点击运行,尝试点击豌豆射手,就可以看到控制台打印的日志了;
    调整下面三行的值,再次点击测试;

        this.cardLight.active = true;
        this.cardGrey.active = false;
        this.cardMask.node.active = false;



  1. 冷却效果的实现
    图片card_mask属性调整
    在这里插入图片描述
    添加代码:
import { _decorator, Component, Node, Sprite } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('CardTemplate')
export class CardTemplate extends Component {


    @property({ type: Node })
    public cardLight: Node = null; // 卡牌亮节点
    @property({ type: Node })
    public cardGrey: Node = null; // 卡牌暗节点
    @property({ type: Sprite })
    public cardMask: Sprite = null; // 卡牌遮罩

    @property({ type: Number })
    private cdTime: number = 5; // 卡牌冷却时间

    private cdTimer: number = 0; // 卡牌冷却计时器

    start() {
        this.cardLight.active = false;
        this.cardGrey.active = true;
        this.cardMask.node.active = true;
        this.cdTimer = this.cdTime
    }

    update(deltaTime: number) {
        if(this.cdTimer >0 ){
            this.cdTimer -= deltaTime;
            this.cardMask.fillRange = -(this.cdTimer / this.cdTime);
            if(this.cardMask.fillRange >0){
                this.cardLight.active = true;
                this.cardGrey.active = false;
                this.cardMask.node.active = false;
            }
        }
    }


    onButtonClick(){
        console.log("按钮被点击了")
        this.cardLight.active = false;
        this.cardGrey.active = true;
        this.cardMask.node.active = true;
        this.cdTimer = this.cdTime
    }

}

效果如下
在这里插入图片描述

知识点来源: https://www.bilibili.com/video/BV1AQe9eqEfw/

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

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

相关文章

openGauss——体系结构

一、体系结构概览 二、驱动程序 客户端程序使用驱动程序,向openGauss的后端管理线程GaussMaster发起连接请求。openGauss目前支持以下四种驱动程序: JDBC,用于Java连接ODBC,开放数据库互连Libpq,C语言程序接口Psycop…

SpringMvc 以配置类的形式代替xml文件

1、配置类 1.1、创建Mvc 项目之后创建 MyWebApplicationInitializer 类 实现接口 WebApplicationInitializer public class MyWebApplicationInitializer implements WebApplicationInitializer {Overridepublic void onStartup(ServletContext servletContext) throws Serv…

大数据-101 Spark Streaming DStream转换 窗口操作状态 跟踪操作 附带多个案例

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

windows安装pytorch精简版(英伟达GPU)

1 下载anaconda 官网:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 选择下载Anaconda-1.4.0-Windows-x86.exe 2 创建虚拟环境 以管理员身份打开Anaconda Prompt conda env list conda creat -n yolov8 python3.8 创建过程中有提示,填…

【图文详解】idea码云环境搭建

公众号:墨轩学习网-----B站:墨轩大楼 欢迎关注!!! 一、码云简介 目前开源中国的四大框架,即四条产品线:开源中国社区、众包、码云和招聘。 码云是开源中国推出的基于Git的代码托管服务&#…

鸿蒙HarmonyOS开发:创建新的Lite工程

当开始开发一个应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。 说明 在运行DevEco Studio工程时,建议每一个运行窗口有2GB以上的可用内存空间。 创建和配置新工程 DevEco Studio提…

如何应对市场变革的战略利器之敏捷企业架构实践全景指南

敏捷与企业架构融合的必然性 在全球化和数字化的双重推动下,市场竞争的激烈程度前所未有。企业必须迅速适应市场的变化,以在激烈的竞争中脱颖而出。然而,传统的企业架构往往侧重于长期战略规划,尽管它在维持企业的稳定性方面功不…

阿贝云评测:免费虚拟主机与免费云服务器的优势对比

阿贝云作为一家知名云服务提供商,以其稳定可靠的服务质量在业界享有盛誉。其中,其免费虚拟主机和免费云服务器备受用户喜爱。在这篇评测中,我们将对这两种服务进行详细对比。 首先,就免费虚拟主机而言,阿贝云提供的免费…

图片工具箱:一键批量加水印,守护创意,提升效率!

前言 你是否曾在处理海量图片时,被繁琐的步骤和漫长的等待时间折磨得苦不堪言?是否梦想过拥有一款神器,能让你的图片处理工作变得轻松愉快,从此告别加班的烦恼,迎接升职加薪的曙光?那么,让我向…

我主编的电子技术实验手册(18)——认识电感

本专栏是笔者主编教材(图0所示)的电子版,依托简易的元器件和仪表安排了30多个实验,主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】,精心设计的【实验步骤】,全面丰富的【思考习…

Golang学习笔记-Golang中的锁

同步原语和锁 Golang作为一个原生支持用户态的语言,当提到并发进程,多线程的时候,是离不开锁的,锁是一种并发编程中的同步原语(Synchronization Primitives),它能保证多个 Goroutine 在访问同一…

数据库的范式

作用是减小表的冗余。 防止插入删除更新异常。 第一、第二、第三、第四、BC范式。并且不是越高越好。 第一范式:1NF的定义为:符合1NF的关系中的每个属性都不可再分。表1所示的情况,就不符合1NF的要求。 …

终端Tabby介绍和使用

介绍一款开源的跨平台终端模拟器,支持系统:Windows、macOS、Linux 下载安装 下载链接:Release Alpha 164 Eugeny/tabby GitHub 下载适合自己环境的版本: 选项说明 【1】Enable analytics选项的作用主要是允许Tabby收集和分析…

【数据集】遥感影像建筑物变化检测对比实验常用数据集分享

整理了几个变化检测的对比试验中常用的变化检测数据集(建筑物) LEVIR-CD 下载链接: https://justchenhao.github.io/LEVIR/ 数据介绍: 用于建筑物变化检测数据集 分辨率:0.5m 尺寸:1024*1024 数量:637组&…

python-求和again(赛氪OJ)

[题目描述] 最近小理遇到了麻烦的问题,你能帮帮他吗? 题目是这样的:计算 SUM(n)123...10^n 。输入格式: 输入包含多组数据,每组数据一行,包括一个整数 n 。当 n−1 时输入终止。输出格式: 对于每…

经济学有哪些分支,分别研究什么?

经济学的分支众多,每个分支都专注于研究经济领域的不同方面。 以下是一些主要经济学分支及其研究内容的概述: 微观经济学: 研究个体经济单位(如家庭、企业)的决策过程以及这些决策如何影响资源分配、市场结构和价格形…

viewBinding的使用(android studio)

引入 在开发安卓软件的时候,我们会大量的使用点击事件。通常情况下,我们是这样做的:将在xml文件里把目标组件添加id属性,如下: 然后在activity里面通过findViewById(R.id.back) 得到一个对象,通过对象调用…

BAT32G137国产项目通用第十节:FreeRTOS 计数信号量

主题:计数信号量可以用于资源管理,允许多个任务获取信号量访问共享资源,但会限制任 务的最大数目。访问的任务数达到可支持的最大数目时,会阻塞其他试图获取该信号量的 任务,直到有任务释放了信号量。 1.常用信号量函数接口 ①创建计数信号量 xSemaphoreCreateCounting()…

AMEYA360:ROHM发售4款非常适用于工业电源的SOP封装通用AC-DC控制器IC

全球知名半导体制造商ROHM(总部位于日本京都市)开发出PWM控制方式*1FET外置型通用控制器IC,非常适用于工业设备的AC-DC电源。目前已有支持各种功率晶体管的4款新产品投入量产,包括低耐压MOSFET驱动用的“BD28C55FJ-LB”、中高耐压MOSFET驱动用的“BD28C5…

树莓派制成的 — 带运动检测和摄像头的安防系统

自动布防/撤防、运动检测、带图片的移动通知 项目所用物品 硬件组件 Raspberry Pi 1 Model A 一个:任何支持摄像头模块的 Raspberry Pi 均可 Raspberry Pi 摄像头模块一个 USB WLAN/WiFi适配器一个:必须支持监控模式,推荐使用RT5370 M…