| 
									
										
										
										
											2024-03-23 20:28:14 +08:00
										 |  |  |  | /* | 
					
						
							|  |  |  |  |  * @Author: WoNiu | 
					
						
							|  |  |  |  |  * @Date: 2024-03-21 13:44:57 | 
					
						
							| 
									
										
										
										
											2024-03-25 19:50:16 +08:00
										 |  |  |  |  * @LastEditTime: 2024-03-25 19:42:52 | 
					
						
							| 
									
										
										
										
											2024-03-23 20:28:14 +08:00
										 |  |  |  |  * @LastEditors: WoNiu | 
					
						
							|  |  |  |  |  * @Description: | 
					
						
							|  |  |  |  |  */ | 
					
						
							|  |  |  |  | /* | 
					
						
							|  |  |  |  |  * @Author: WoNiu | 
					
						
							|  |  |  |  |  * @Date: 2024-03-21 13:44:57 | 
					
						
							|  |  |  |  |  * @LastEditTime: 2024-03-23 12:57:36 | 
					
						
							|  |  |  |  |  * @LastEditors: WoNiu | 
					
						
							|  |  |  |  |  * @Description: 倒计时进度 | 
					
						
							|  |  |  |  |  */ | 
					
						
							|  |  |  |  | import { | 
					
						
							|  |  |  |  |   _decorator, | 
					
						
							|  |  |  |  |   Component, | 
					
						
							| 
									
										
										
										
											2024-03-24 17:55:56 +08:00
										 |  |  |  |   Director, | 
					
						
							|  |  |  |  |   director, | 
					
						
							| 
									
										
										
										
											2024-03-23 20:28:14 +08:00
										 |  |  |  |   Node, | 
					
						
							|  |  |  |  |   ProgressBar, | 
					
						
							|  |  |  |  |   Sprite, | 
					
						
							|  |  |  |  |   tween, | 
					
						
							|  |  |  |  |   UITransform, | 
					
						
							|  |  |  |  |   v2, | 
					
						
							|  |  |  |  | } from "cc"; | 
					
						
							|  |  |  |  | import { BaseSprite } from "../../GlobalScript/CommonComponent/BaseSprite"; | 
					
						
							|  |  |  |  | import { NpkImage } from "../../Tool/NPKImage"; | 
					
						
							|  |  |  |  | import { LocationImportComponent } from "../../GlobalScript/CommonComponent/LocationImportComponent"; | 
					
						
							|  |  |  |  | const { ccclass } = _decorator; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | /// 倒计时时间进度Node
 | 
					
						
							|  |  |  |  | @ccclass("TimingProgressBar") | 
					
						
							|  |  |  |  | export class TimingProgressBar extends Node { | 
					
						
							|  |  |  |  |   //* 进度条bar
 | 
					
						
							|  |  |  |  |   progressBar: ProgressBar; | 
					
						
							|  |  |  |  |   //* 进度条精灵
 | 
					
						
							|  |  |  |  |   barSprite: Sprite; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //* 缓动控制
 | 
					
						
							|  |  |  |  |   timingComponent: TimingComponent; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   constructor() { | 
					
						
							|  |  |  |  |     super(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     this.setPosition(353.5, -355); | 
					
						
							|  |  |  |  |     this.addComponent(UITransform).anchorPoint = v2(0, 1); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     this.timingComponent = this.addComponent(TimingComponent); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     this.initBackgrund(); | 
					
						
							|  |  |  |  |     this.initBarSprite(); | 
					
						
							|  |  |  |  |     this.initProgressBar(); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-25 19:50:16 +08:00
										 |  |  |  |   //* 倒计时缓动开始
 | 
					
						
							|  |  |  |  |   /** | 
					
						
							|  |  |  |  |    * @description: | 
					
						
							|  |  |  |  |    * @param {number} time: 时间 | 
					
						
							|  |  |  |  |    * @param {Function} back: 缓动完成回调 | 
					
						
							|  |  |  |  |    */ | 
					
						
							| 
									
										
										
										
											2024-03-23 20:28:14 +08:00
										 |  |  |  |   tweenerStart(time:number,back:Function){ | 
					
						
							|  |  |  |  |     this.timingComponent.tweenerStart(time,back); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   initBackgrund() { | 
					
						
							|  |  |  |  |     const bs = this.addComponent(BaseSprite); | 
					
						
							|  |  |  |  |     bs.updateSpriteFrame(NpkImage.ingame, 43); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   initProgressBar() { | 
					
						
							|  |  |  |  |     const progressBar = this.addComponent(ProgressBar); | 
					
						
							|  |  |  |  |     progressBar.barSprite = this.barSprite; | 
					
						
							|  |  |  |  |     progressBar.mode = ProgressBar.Mode.FILLED; | 
					
						
							|  |  |  |  |     progressBar.totalLength = 280; | 
					
						
							|  |  |  |  |     progressBar.progress = 1; | 
					
						
							|  |  |  |  |     this.progressBar = progressBar; | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   initBarSprite() { | 
					
						
							|  |  |  |  |     const node = new Node(); | 
					
						
							|  |  |  |  |     this.addChild(node); | 
					
						
							|  |  |  |  |     node.setPosition(60, -22); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     const barNode = new Node(); | 
					
						
							|  |  |  |  |     node.addChild(barNode); | 
					
						
							|  |  |  |  |     this.barSprite = barNode.addComponent(Sprite); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     const bs = barNode.addComponent(BaseSprite); | 
					
						
							|  |  |  |  |     bs.updateSpriteFrame(NpkImage.ingame, 45); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     this.barSprite = bs.SpriteObj; | 
					
						
							|  |  |  |  |     this.barSprite.spriteFrame = bs.SpriteObj.spriteFrame; | 
					
						
							|  |  |  |  |     this.barSprite.type = Sprite.Type.FILLED; | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | @ccclass("TimingComponent") | 
					
						
							|  |  |  |  | export class TimingComponent extends Component { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   obj = { progress: 1}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   onCompleteBack: Function; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   start() { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   tweenerStart(time:number,back:Function){ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     this.onCompleteBack = back; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     tween(this.obj) | 
					
						
							|  |  |  |  |       .to( | 
					
						
							|  |  |  |  |         time, | 
					
						
							|  |  |  |  |         { progress: 0 }, | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |           easing: "linear", | 
					
						
							|  |  |  |  |           onUpdate: this.onUpdate.bind(this), | 
					
						
							|  |  |  |  |           onComplete: this.onComplete.bind(this), | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |       ) | 
					
						
							|  |  |  |  |       .start(); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //* 缓动进度
 | 
					
						
							|  |  |  |  |   onUpdate(target: any, ratio: number){ | 
					
						
							|  |  |  |  |     const timingProgressBar: TimingProgressBar = this.node as TimingProgressBar; | 
					
						
							|  |  |  |  |     timingProgressBar.progressBar.progress = this.obj.progress; | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //* 缓动完成
 | 
					
						
							|  |  |  |  |   onComplete(){ | 
					
						
							|  |  |  |  |     this.obj.progress = 1; | 
					
						
							|  |  |  |  |     this.onCompleteBack(); | 
					
						
							| 
									
										
										
										
											2024-03-24 17:55:56 +08:00
										 |  |  |  |     /// 这一帧结束之后销毁
 | 
					
						
							|  |  |  |  |     director.once(Director.EVENT_END_FRAME, () => { | 
					
						
							|  |  |  |  |       // 销毁
 | 
					
						
							|  |  |  |  |       this.node.destroy(); | 
					
						
							|  |  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2024-03-23 20:28:14 +08:00
										 |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   update(deltaTime: number) {} | 
					
						
							|  |  |  |  | } |