|
@@ -1,4 +1,4 @@
|
|
-import { _decorator, Color, Component, Enum, Node, Sprite, tween, Vec3 } from 'cc';
|
|
|
|
|
|
+import { _decorator, Color, Component, Enum, Node, Sprite, tween, Vec3, UITransform, view } from 'cc';
|
|
import { CupHeight, WaterColorHex, WaterColors } from '../TakeGobletGlobalInstance';
|
|
import { CupHeight, WaterColorHex, WaterColors } from '../TakeGobletGlobalInstance';
|
|
import { Water } from './Water';
|
|
import { Water } from './Water';
|
|
import { EventDispatcher } from 'db://assets/core_tgx/easy_ui_framework/EventDispatcher';
|
|
import { EventDispatcher } from 'db://assets/core_tgx/easy_ui_framework/EventDispatcher';
|
|
@@ -58,6 +58,44 @@ export class CocktailCup extends Component {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //补满水
|
|
|
|
+ public async fillUp() {
|
|
|
|
+ const currentActive = this.waters.children.filter(n => n.active).length;
|
|
|
|
+ const layersToAdd = this.cupHeight - currentActive;
|
|
|
|
+
|
|
|
|
+ for (let i = 0; i < layersToAdd; i++) {
|
|
|
|
+ const waterIndex = currentActive + i;
|
|
|
|
+ const waterNode = this.waters.children[waterIndex];
|
|
|
|
+ const water = waterNode.getComponent(Water)!;
|
|
|
|
+
|
|
|
|
+ water.color = this.cupColor;
|
|
|
|
+ waterNode.active = true;
|
|
|
|
+ waterNode.scale = Vec3.ZERO;
|
|
|
|
+
|
|
|
|
+ await new Promise<void>(resolve => {
|
|
|
|
+ tween(waterNode)
|
|
|
|
+ .to(0.5 / layersToAdd, { scale: Vec3.ONE }, { easing: 'sineOut' })
|
|
|
|
+ .call(() => resolve())
|
|
|
|
+ .start();
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 补满后执行移动销毁动画
|
|
|
|
+ const uiTransform = this.node.getComponent(UITransform)!;
|
|
|
|
+ const screenWidth = view.getVisibleSize().width;
|
|
|
|
+ const targetX = screenWidth / 2 + uiTransform.width * 1.5;
|
|
|
|
+
|
|
|
|
+ await new Promise<void>(resolve => {
|
|
|
|
+ tween(this.node)
|
|
|
|
+ .to(0.5, { position: new Vec3(targetX, 0, 0) }, { easing: 'sineIn' })
|
|
|
|
+ .call(() => {
|
|
|
|
+ this.node.destroy();
|
|
|
|
+ resolve();
|
|
|
|
+ })
|
|
|
|
+ .start();
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
// 清空水层(消除时调用)
|
|
// 清空水层(消除时调用)
|
|
reset() {
|
|
reset() {
|
|
this.waters.children.forEach(water => water.active = false);
|
|
this.waters.children.forEach(water => water.active = false);
|