System.register(["cc"], function (_export, _context) { "use strict"; var _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, Component, Node, UIOpacity, UITransform, Vec3, Widget, _decorator, easing, instantiate, tween, v3, _dec, _dec2, _class, _crd, ccclass, requireComponent, RewardFly; return { setters: [function (_cc) { _cclegacy = _cc.cclegacy; __checkObsolete__ = _cc.__checkObsolete__; __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__; Component = _cc.Component; Node = _cc.Node; UIOpacity = _cc.UIOpacity; UITransform = _cc.UITransform; Vec3 = _cc.Vec3; Widget = _cc.Widget; _decorator = _cc._decorator; easing = _cc.easing; instantiate = _cc.instantiate; tween = _cc.tween; v3 = _cc.v3; }], execute: function () { _crd = true; _cclegacy._RF.push({}, "9d999oa7ZtO/Jhnk1+iN63E", "RewardFly", undefined); __checkObsolete__(['Component', 'EventTouch', 'Node', 'Prefab', 'UIOpacity', 'UITransform', 'Vec3', 'Widget', '_decorator', 'easing', 'instantiate', 'tween', 'v3']); ({ ccclass, requireComponent } = _decorator); _export("RewardFly", RewardFly = (_dec = ccclass('RewardFly'), _dec2 = requireComponent(UITransform), _dec(_class = _dec2(_class = class RewardFly extends Component { onLoad() {//this.node.on(Node.EventType.TOUCH_START, function (event: EventTouch) { //event.propagationStopped = true; //event.preventSwallow = true; //}, this, true); } onDisable() { this.node.destroyAllChildren(); } convertToNodeSpaceAR(target) { if (target instanceof Node) { return this.node.getComponent(UITransform).convertToNodeSpaceAR(target.getComponent(UITransform).convertToWorldSpaceAR(Vec3.ZERO)); } return this.node.getComponent(UITransform).convertToNodeSpaceAR(target); } add(opts) { var _this = this; var startPos = this.convertToNodeSpaceAR(opts.start); var endPos = this.convertToNodeSpaceAR(opts.end); if (opts.endOffset) { endPos.add3f(opts.endOffset[0], opts.endOffset[1], 0); } var nodeCopy = null; if (opts.highlight) { if (opts.highlightOffset) { endPos.add3f(opts.highlightOffset[0], opts.highlightOffset[1], 0); } if (opts.highlightArea) { var _nodeCopy$getComponen; var endAreaPos = this.convertToNodeSpaceAR(opts.highlightArea); if (opts.highlightOffset) { endAreaPos.add3f(opts.highlightOffset[0], opts.highlightOffset[1], 0); } nodeCopy = instantiate(opts.highlightArea); (_nodeCopy$getComponen = nodeCopy.getComponent(Widget)) == null || _nodeCopy$getComponen.destroy(); nodeCopy.setParent(this.node); nodeCopy.setPosition(endAreaPos); } else if (Node.isNode(opts.end)) { var _nodeCopy$getComponen2; nodeCopy = instantiate(opts.end); (_nodeCopy$getComponen2 = nodeCopy.getComponent(Widget)) == null || _nodeCopy$getComponen2.destroy(); nodeCopy.setParent(this.node); nodeCopy.setPosition(endPos); } } var _loop = function _loop(index) { var aniNode = instantiate(opts.item); aniNode.setPosition(startPos); aniNode.setParent(_this.node); // 炸开位置 var midPos = v3(startPos.x, startPos.y, 0); midPos.x += (Math.random() * 2 - 1) * (opts.startRange ? opts.startRange[0] : 100); midPos.y += (Math.random() * 2 - 1) * (opts.startRange ? opts.startRange[1] : 100); // 执行动画 (aniNode.getComponent(UIOpacity) || aniNode.addComponent(UIOpacity)).opacity = 0; tween(aniNode).delay(index * 0.025).call(() => { aniNode.getComponent(UIOpacity).opacity = 200; tween(aniNode.getComponent(UIOpacity)).to(0.4, { opacity: 255 }, { easing: easing.expoOut }).start(); }).to(0.4, { position: midPos }, { easing: easing.expoOut }).call(() => { tween(aniNode.getComponent(UIOpacity)).delay(0.5).to(0.1, { opacity: 70 }).start(); }).to(0.6, { position: endPos }, { easing: easing.expoIn }).call(() => { if (index === 0) { // 结束节点缩放 if (nodeCopy) { var scale = v3(nodeCopy.scale); tween(nodeCopy).to(0.1, { scale: v3(scale.x * 1.3, scale.y * 1.3) }).delay(0.025 * Math.max(opts.count, 4)).to(0.1, { scale: scale }).call(() => { // 结束节点透明销毁 var uiOpacity = nodeCopy.getComponent(UIOpacity) || nodeCopy.addComponent(UIOpacity); tween(uiOpacity).to(0.1, { opacity: uiOpacity.opacity * 0.3 }).call(() => nodeCopy.destroy()).start(); }).start(); } opts.onBegin && opts.onBegin(nodeCopy); } opts.onContact && opts.onContact(nodeCopy); }).delay(0.01).call(() => { aniNode.destroy(); if (index === opts.count - 1) { opts.onFinish && opts.onFinish(nodeCopy); } }).start(); }; for (var index = 0; index < opts.count; index++) { _loop(index); } } }) || _class) || _class)); _cclegacy._RF.pop(); _crd = false; } }; }); //# sourceMappingURL=cb13e961bcd8d7069545036fc45d02908c0eee94.js.map