幸运硬币动画

This commit is contained in:
WoNiu 2024-03-26 17:18:28 +08:00
parent 0c6de664fe
commit 199507d979
5 changed files with 240 additions and 0 deletions

View File

@ -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(){
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "0039c2de-95ce-49a6-aa91-0ca7ee85ecc3",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -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(){
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "38b0fe6c-2083-4510-92d6-8f50384fac2c",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -5,6 +5,9 @@ import { BaseButtonAction } from '../../GlobalScript/CommonComponent/BaseButtonA
const { ccclass } = _decorator;
@ccclass('CloseButtonNode')
/**
* @description: x按钮node
*/
export class CloseButtonNode extends Node {
constructor(onMouseLeftUp?:Function){