【cocos creator】进度条控制脚本,支持节点进度条,图片进度条,进度条组件,和进度文字展示

进度条控制脚本,支持节点进度条,图片进度条,进度条组件,和进度文字展示
在这里插入图片描述
在这里插入图片描述


const { ccclass, property, menu } = cc._decorator;let text_type = cc.Enum({"20%": 0,"1/5": 1,"差值": 2,"自定义": 3,
});
let bar_type = cc.Enum({"Sprite": 0,"ProgressBar": 1,"Node": 2,
});@ccclass
@menu("自定义组件/进度条")
export default class barNode extends cc.Component {@property({type: cc.Sprite,visible() { return this.barType == bar_type.Sprite }})spriteBar: cc.Sprite = null;@property({type: cc.ProgressBar,visible() { return this.barType == bar_type.ProgressBar }})progressBar: cc.ProgressBar = null;@property({type: cc.Node,visible() { return this.barType == bar_type.Node }})nodeBar: cc.Node = null;@property({type: cc.Float,visible() { return this.barType == bar_type.Node }})max: number = 1;@property({type: cc.Float,visible() { return this.barType == bar_type.Node }})min: number = 0;@property(cc.RichText)barDesc: cc.RichText = null;@property(cc.Label)barDesc2: cc.Label = null;@property({type: cc.Enum(bar_type),displayName: "进度条类型"})barType = bar_type.Sprite;@property({type: cc.Enum(text_type),displayName: "进度文字类型"})textType = text_type["1/5"];_width = 0;protected onLoad(): void {}init(value, limit, bar_desc?) {let desc: string = bar_desc || "[0]";let percent = value / limit;percent = percent > 1 ? 1 : percent;if (this.spriteBar && this.barType == bar_type.Sprite) this.spriteBar.fillRange = percent;if (this.progressBar && this.barType == bar_type.ProgressBar) this.progressBar.progress = (percent < 0.1 && percent != 0) ? 0.1 : percent;if (this.nodeBar && this.barType == bar_type.Node) {this.nodeBar.width = (percent && percent * this.max < this.min) ? this.min : percent * this.max;}let str = "";switch (this.textType) {case 0: str = `${this.fixForce(percent * 100, 2)}%`desc = desc.replace("[0]", str);break;case 1: str = `${value}/${limit}`;desc = desc.replace("[0]", str);break;case 2: str = `${limit - value < 0 ? 0 : limit - value}`desc = desc.replace("[0]", str);break;case 3:desc = desc.replace("[0]", value);desc = desc.replace("[1]", limit);break;}if (this.barDesc) this.barDesc.string = desc;if (this.barDesc2) this.barDesc2.string = desc;}fixForce(count, fixTo): string {let a = (count + "").split(".");let b = a[0];if (a.length > 1) b = a[0] + "." + a[1].slice(0, fixTo);if (b == "0.00" && count != 0) {if (a.length > 1) b = a[0] + "." + a[1].slice(0, 4);}return b;}
}

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

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

相关文章

Django结合Manager重写create、update、delete方法

想要重写create、update、delete方法我们先要了解一下其他的知识点 Manager 在Django中&#xff0c;Manager是一个非常核心的概念&#xff0c;它负责与数据库交互&#xff0c;提供了访问和管理模型实例&#xff08;即数据库中的记录&#xff09;的方式。每个Django模型类默认…

jupyter lab怎么使用cmd打开

我一般都是用vscode&#xff0c;或者pycharm的终端打开 但是我为了秉承程序员的素养&#xff08;就是觉得命令行打开很帅&#xff09; 我试着去直接用一样的命令&#xff0c;但是不行&#xff0c;显示不是内部命令之类的。 是因为没有配置环境变量。 但是我突然发现&#x…

【计算机毕业设计】基于SSM++jsp的汽车客运站管理系统【源码+lw+部署文档】

目录 第1章 绪论 1.1 课题背景 1.2 课题意义 1.3 研究内容 第2章 开发环境与技术 2.1 MYSQL数据库 2.2 JSP技术 2.3 SSM框架 第3章 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统流程 3.2.1 操作流程 3.2.2 登录流程 3.2.3 删除信息流…

rpm与yum扩展、命令

目录 系统安装软件方式 1、rpm方式 命令 yum方式 安装 更新和升级 查找与显示 删除程序 清除缓存 仅下载 系统安装软件方式 1、rpm方式 优点&#xff1a;无需网络安装软件 缺点&#xff1a;无法解决软件依赖 命令 rpm -ivh 安装 --nodeps忽略依赖关系 --force强…

希尔伯特 包络证明 未出现模态混合现象 是啥?

希尔伯特变换在信号处理中常用于求信号的包络&#xff0c;它是一种线性运算&#xff0c;能够将实数信号转换为其解析信号&#xff0c;即包含原信号及其希尔伯特变换的复数信号。解析信号的实部是原信号&#xff0c;虚部是原信号的希尔伯特变换。 包络证明 在信号处理中&#…

TypeScript 学习笔记(五):异步编程与错误处理

1. 引言 在前几篇学习笔记中,我们介绍了 TypeScript 的基础知识、高级类型系统、模块与命名空间以及装饰器和高级编程技巧。本篇将重点探讨 TypeScript 中的异步编程与错误处理,帮助你在实际项目中更好地处理异步操作和错误。 2. 异步编程 异步编程是现代 JavaScript 应用…

C语言预处理中#和##运算符是什么意思?

一、问题 有⼈认为&#xff0c;在C 语⾔中使⽤“#”运算符的就是预处理&#xff0c;是不是呢&#xff1f;“##”⼜是什么呢&#xff1f; 二、解答 在程序中&#xff0c;最为常⻅的是#define 宏定义指令&#xff0c;下⾯通过这个指令理解⼀下“#”的作⽤。编写⼀个预处理指令&a…

人大金仓 KingBase查询死锁,释放死锁

人大金仓(kingbase)查询数据库死锁及释放 kingbase锁表排查以及释放锁 总结下 -- 查询&#xff0c;可自己添加where条件 SELECT * FROM sys_stat_activity WHERE state ! idle AND wait_event_typeLock-- 结束进程 SELECT sys_terminate_backend(pid);

PLC集成BL121PO网关优化智能电网的远程管理PLC转OPC UA协议

随着工业自动化技术的不断发展&#xff0c;智能电网等复杂系统对于设备之间高效通信的需求日益增加。PLC转OPC UA协议转换网关BL121PO作为一款领先的协议转换设备&#xff0c;通过其独特的设计和功能&#xff0c;为用户提供了高效、安全的PLC接入OPC UA的解决方案。 设备概述 …

了解Hive 工作原理:Hive 是如何工作的?

一、概念 1、Hive Apache Hive 是一个分布式的容错数据仓库系统&#xff0c;可实现大规模分析和便于使用 SQL 读取、写入和管理驻留在分布式存储中的PB级数据。 Hive是建立在Hadoop之上的数据仓库框架&#xff0c;它提供了一种类SQL的查询语言—HiveQL&#xff0c;使得熟悉S…

【深度学习实战—8】:基于MediaPipe的人脸检测

✨博客主页&#xff1a;王乐予&#x1f388; ✨年轻人要&#xff1a;Living for the moment&#xff08;活在当下&#xff09;&#xff01;&#x1f4aa; &#x1f3c6;推荐专栏&#xff1a;【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 &#x1f63a;一、Med…

软件3班20240527

JDK 版本与 Tomcat 的 兼容性

rk3568_spinlock

文章目录 前言1、spinlock是什么?2、自旋锁实验2.1源码2.2 结果图总结前言 本文记录在rk3568开发板做的自旋锁实验。通过自旋锁控制state变量来限制只有一个应用程序来打开驱动设备。 1、spinlock是什么? spinlock称为自旋锁,如果获取不到资源,就只能一直傻傻地等待资源被…

实现销售与客流双增长!看看社区零售“排队王”如何成为顶流?

5月18日至5月26日&#xff0c;北京华联BHGMall燃情推出了一年一度的2024 Need&#xff08;你的&#xff09;BHGDay&#xff0c;接棒“五一”热潮&#xff0c;献礼“520”&#xff0c;通过韩式俯拍机、人生四宫格拍摄大赛、真合拍星派对、超级品牌日等丰富多彩的线上线下活动&am…

Python心得(待补充)

Python编程习惯 打开jupyter notebook&#xff0c;用于测试一些小的代码块或者函数 Python学习的一些好网站 对于内容少的可以看一遍 对于内容多的&#xff0c;可以当工具书检索使用 下列网站的知识涵盖度由浅到深&#xff0c;可以按照(暂定)顺序逐个进行检索&#xff0c;即先…

dynamic与指针

C类型父类与子类的转换--dynamic_cast - ren_zhg1992 - 博客园 (cnblogs.com) #include <iostream> using namespace std;class Base { public:Base() {};virtual void Show() { cout << "This is Base calss"; } }; class Derived :public Base { publ…

迷你手持小风扇哪个牌子质量好又实惠?这五款不踩雷推荐!

每年夏天&#xff0c;迷你手持小风扇作为消暑神器都会成为市场上的热销产品。然而&#xff0c;由于选购经验有限&#xff0c;许多消费者在面对众多品牌和型号时&#xff0c;往往难以判断哪个牌子的迷你小风扇既质量好又价格实惠。在追求性价比的同时&#xff0c;我们也不应忽视…

【设计模式】JAVA Design Patterns——Data Access Object(数据访问对象模式)

&#x1f50d;目的 对象为某种类型的数据库或其他持久性机制提供了抽象接口。 &#x1f50d;解释 真实世界例子 有一组客户数据需要持久化到数据库中。 我们需要整个额外的增删改查操作以便操作客户数据。 通俗描述 DAO是我们通过基本持久性机制提供的接口。 维基百科 在计算机…

【云原生】kubernetes中的认证、权限设置---RBAC授权原理分析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

基于UDP的TFTP文件传输-实现网盘上传下载功能

数据传输模式&#xff1a;octet(二进制模式) #include<head.h> char* down_up_request(char* buf,char* filename,int rw,int sockfd,struct sockaddr_in in); int download(struct sockaddr_in in,char* filename,char* buf,int sockfd); int upload(struct sockaddr_in…