幸运硬币动画
This commit is contained in:
		
							parent
							
								
									0c6de664fe
								
							
						
					
					
						commit
						199507d979
					
				|  | @ -0,0 +1,185 @@ | ||||||
|  | /* | ||||||
|  |  * @Author: WoNiu | ||||||
|  |  * @Date: 2024-03-26 11:44:58 | ||||||
|  |  * @LastEditTime: 2024-03-26 15:41:01 | ||||||
|  |  * @LastEditors: WoNiu | ||||||
|  |  * @Description: 幸运硬币效果类型 | ||||||
|  |  */ | ||||||
|  | import { | ||||||
|  |   _decorator, | ||||||
|  |   Sprite, | ||||||
|  |   Director, | ||||||
|  |   director, | ||||||
|  |   Node, | ||||||
|  |   tween, | ||||||
|  |   UITransform, | ||||||
|  |   v2, | ||||||
|  |   Color, | ||||||
|  | } from "cc"; | ||||||
|  | import { AnimationNode } from "../../GlobalScript/Animation/AnimationNode"; | ||||||
|  | import { BaseSprite } from "../../GlobalScript/CommonComponent/BaseSprite"; | ||||||
|  | import { NpkImage } from "../../Tool/NPKImage"; | ||||||
|  | import { CloseButtonNode } from "../Common/CloseButtonNode"; | ||||||
|  | import { GameRootSingleton } from "../GameRootController"; | ||||||
|  | import { ShowNodeBorder } from "../../GlobalScript/CommonComponent/ShowNodeBorder"; | ||||||
|  | const { ccclass, property } = _decorator; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @description: 幸运硬币效果类型 | ||||||
|  |  */ | ||||||
|  | export enum LuckyType { | ||||||
|  |   // 前进三格
 | ||||||
|  |   GoThree = 0, | ||||||
|  |   // 移动到月光酒馆
 | ||||||
|  |   YeGuangJiuGuan, | ||||||
|  |   // 移动到决斗场
 | ||||||
|  |   JueDouChang, | ||||||
|  |   // 移动到海上列车
 | ||||||
|  |   HaiShangLieChe, | ||||||
|  |   // 我要双倍,点数x2
 | ||||||
|  |   Double, | ||||||
|  |   // 这是我的钱,点数减半
 | ||||||
|  |   Halve, | ||||||
|  |   // 骑士马战 ,点数+2w
 | ||||||
|  |   HorseCombat, | ||||||
|  |   // 装备修理, 点数-2w
 | ||||||
|  |   Servicing, | ||||||
|  |   // 收取费用,夺取其他人 2w 点数
 | ||||||
|  |   Charge, | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ccclass("LuckyCoinsNode") | ||||||
|  | export class LuckyCoinsNode extends Node { | ||||||
|  |   luckyType: LuckyType; | ||||||
|  | 
 | ||||||
|  |   // 幸运硬币的结果
 | ||||||
|  |   resultNode: Node; | ||||||
|  | 
 | ||||||
|  |   static show(type: LuckyType) { | ||||||
|  |     const node = new LuckyCoinsNode(type); | ||||||
|  |     GameRootSingleton.getInstance().DialogRootNode.addChild(node); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   constructor(type: LuckyType) { | ||||||
|  |     super(); | ||||||
|  |     this.luckyType = type; | ||||||
|  | 
 | ||||||
|  |     this.addComponent(UITransform).anchorPoint = v2(0, 1); | ||||||
|  |     this.addComponent(ShowNodeBorder); | ||||||
|  | 
 | ||||||
|  |     this.initResultNode(); | ||||||
|  |     this.initLuckyAni(); | ||||||
|  |     this.delayShowResult(); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   initActionButton() { | ||||||
|  |     const node = new CloseButtonNode(() => { | ||||||
|  |       this.initLuckyAni(); | ||||||
|  |     }); | ||||||
|  |     this.addChild(node); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   initResultNode() { | ||||||
|  |     const node = new Node(); | ||||||
|  |     this.addChild(node); | ||||||
|  | 
 | ||||||
|  |     node.setPosition(443, -200); | ||||||
|  |     this.resultNode = node; | ||||||
|  | 
 | ||||||
|  |     node.active = false; | ||||||
|  | 
 | ||||||
|  |     const bs = node.addComponent(BaseSprite); | ||||||
|  |     bs.updateSpriteFrame(NpkImage.luckycoin, this.luckyType); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   initLuckyAni() { | ||||||
|  |     const lucky = new AnimationNode("ani/luckycoin01.ani", () => { | ||||||
|  |       /// 这一帧结束之后调用
 | ||||||
|  |       director.once(Director.EVENT_END_FRAME, () => { | ||||||
|  |         // 销毁,销毁节点只能在当前帧结束后
 | ||||||
|  |         lucky.destroy(); | ||||||
|  |       }); | ||||||
|  |     }); | ||||||
|  |     lucky.setPosition(318.5, -107.5); | ||||||
|  |     this.addChild(lucky); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   // 延迟显示结果
 | ||||||
|  |   delayShowResult() { | ||||||
|  |     setTimeout(() => { | ||||||
|  |       this.resultNode.active = true; | ||||||
|  |       setTimeout(() => { | ||||||
|  |         this.resultTweenDestroy(); | ||||||
|  |       }, 1000); | ||||||
|  |     }, 1600); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   // 缓动消失
 | ||||||
|  |   resultTweenDestroy() { | ||||||
|  | 
 | ||||||
|  |     let obj = { x: 255 }; | ||||||
|  | 
 | ||||||
|  |     tween(obj) | ||||||
|  |       .to(0.5, { x: 1 }, { onUpdate: () => { | ||||||
|  |         const spr = this.resultNode.getComponent(Sprite); | ||||||
|  |         spr.color = new Color(255,255,255,obj.x); | ||||||
|  | 
 | ||||||
|  |         console.log(spr.color.a + ' - ' + obj.x); | ||||||
|  | 
 | ||||||
|  |       }, onComplete: () => { | ||||||
|  |         this.resultNode.active = false; | ||||||
|  |       },easing:'linear'}) | ||||||
|  |       .start(); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   close(){ | ||||||
|  | 
 | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @description: 幸运硬币事件 | ||||||
|  |  */ | ||||||
|  | export class LuckyAction { | ||||||
|  |     // 前进三格
 | ||||||
|  |   static GoThreeAction(){ | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   // 移动到月光酒馆
 | ||||||
|  |   YeGuangJiuGuanAction(){ | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   // 移动到决斗场
 | ||||||
|  |   JueDouChangAction(){ | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   // 移动到海上列车
 | ||||||
|  |   HaiShangLieCheAction(){ | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   // 我要双倍,点数x2
 | ||||||
|  |   DoubleAction(){ | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   // 这是我的钱,点数减半
 | ||||||
|  |   HalveAction(){ | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   // 骑士马战 ,点数+2w
 | ||||||
|  |   HorseCombatAction(){ | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   // 装备修理, 点数-2w
 | ||||||
|  |   ServicingAction(){ | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   // 收取费用,夺取其他人 2w 点数
 | ||||||
|  |   ChargeAction(){ | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |    | ||||||
|  |    | ||||||
|  |   } | ||||||
|  | @ -0,0 +1,9 @@ | ||||||
|  | { | ||||||
|  |   "ver": "4.0.23", | ||||||
|  |   "importer": "typescript", | ||||||
|  |   "imported": true, | ||||||
|  |   "uuid": "0039c2de-95ce-49a6-aa91-0ca7ee85ecc3", | ||||||
|  |   "files": [], | ||||||
|  |   "subMetas": {}, | ||||||
|  |   "userData": {} | ||||||
|  | } | ||||||
|  | @ -0,0 +1,34 @@ | ||||||
|  | /* | ||||||
|  |  * @Author: WoNiu | ||||||
|  |  * @Date: 2024-03-26 11:36:36 | ||||||
|  |  * @LastEditTime: 2024-03-26 15:28:36 | ||||||
|  |  * @LastEditors: WoNiu | ||||||
|  |  * @Description: | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | import { LuckyCoinsNode, LuckyType } from "../DialogNode/LuckyCoinsNode"; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @description: 地图事件 | ||||||
|  |  */ | ||||||
|  | export class MapTitleAction { | ||||||
|  |   // ─── 特殊事件 ────────────────────────────────────────────────────────────
 | ||||||
|  |   //* 月光酒馆
 | ||||||
|  |   //* 决斗场
 | ||||||
|  |   //* 海上列车
 | ||||||
|  |   //* 幸运硬币
 | ||||||
|  |   /** | ||||||
|  |    * @description: 幸运硬币事件 | ||||||
|  |    */ | ||||||
|  |   static lucky(){ | ||||||
|  |     LuckyCoinsNode.show(LuckyType.GoThree); | ||||||
|  |   } | ||||||
|  |   // ─── 怪物事件 ────────────────────────────────────────────────────────────────────
 | ||||||
|  |   /** | ||||||
|  |    * @description: 怪物事件 | ||||||
|  |    */ | ||||||
|  |   static monsterAction(){ | ||||||
|  | 
 | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -0,0 +1,9 @@ | ||||||
|  | { | ||||||
|  |   "ver": "4.0.23", | ||||||
|  |   "importer": "typescript", | ||||||
|  |   "imported": true, | ||||||
|  |   "uuid": "38b0fe6c-2083-4510-92d6-8f50384fac2c", | ||||||
|  |   "files": [], | ||||||
|  |   "subMetas": {}, | ||||||
|  |   "userData": {} | ||||||
|  | } | ||||||
|  | @ -5,6 +5,9 @@ import { BaseButtonAction } from '../../GlobalScript/CommonComponent/BaseButtonA | ||||||
| const { ccclass } = _decorator; | const { ccclass } = _decorator; | ||||||
| 
 | 
 | ||||||
| @ccclass('CloseButtonNode') | @ccclass('CloseButtonNode') | ||||||
|  | /** | ||||||
|  |  * @description: x按钮node | ||||||
|  |  */ | ||||||
| export class CloseButtonNode extends Node { | export class CloseButtonNode extends Node { | ||||||
| 
 | 
 | ||||||
|     constructor(onMouseLeftUp?:Function){ |     constructor(onMouseLeftUp?:Function){ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue