pinball/assets/_Game/Scripts/Manager/StickerManager.ts

35 lines
1.1 KiB
TypeScript

import { _decorator, CCString, Component, Node, Sprite, SpriteFrame, tween, Vec3 } from 'cc';
import Singleton from '../Singleton';
const { ccclass, property } = _decorator;
@ccclass('Sticker')
class Sticker {
@property(CCString)
public Name: string = '';
@property(SpriteFrame)
public SpriteFrame: SpriteFrame;
}
@ccclass('StickerManager')
export class StickerManager extends Singleton<StickerManager>() {
@property({ type: Node, visible: true })
private _popup: Node;
@property({ type: Sticker, visible: true })
private _stickers: Sticker[] = [];
protected start(): void {
this._popup.setScale(Vec3.ZERO);
}
public Show(stickerName: string) {
let sticker = this._stickers.find((s) => s.Name == stickerName);
this._popup.getComponent(Sprite).spriteFrame = sticker.SpriteFrame;
tween(this._popup)
.set({ scale: Vec3.ZERO })
.to(0.3, { scale: Vec3.ONE }, { easing: 'backOut' })
.delay(0.5)
.to(0.2, { scale: Vec3.ZERO }, { easing: 'backIn' })
.start();
}
}