diff --git a/assets/Game/Prefab/FreeSpinEnter.prefab b/assets/Game/Prefab/FreeSpinEnter.prefab index aad6add..0e2a749 100644 --- a/assets/Game/Prefab/FreeSpinEnter.prefab +++ b/assets/Game/Prefab/FreeSpinEnter.prefab @@ -25,14 +25,11 @@ "__id__": 12 }, { - "__id__": 28 + "__id__": 30 } ], "_active": true, "_components": [ - { - "__id__": 80 - }, { "__id__": 82 }, @@ -41,10 +38,13 @@ }, { "__id__": 86 + }, + { + "__id__": 88 } ], "_prefab": { - "__id__": 88 + "__id__": 90 }, "_lpos": { "__type__": "cc.Vec3", @@ -286,9 +286,6 @@ ], "_active": true, "_components": [ - { - "__id__": 19 - }, { "__id__": 21 }, @@ -297,10 +294,13 @@ }, { "__id__": 25 + }, + { + "__id__": 27 } ], "_prefab": { - "__id__": 27 + "__id__": 29 }, "_lpos": { "__type__": "cc.Vec3", @@ -347,10 +347,13 @@ }, { "__id__": 16 + }, + { + "__id__": 18 } ], "_prefab": { - "__id__": 18 + "__id__": 20 }, "_lpos": { "__type__": "cc.Vec3", @@ -454,6 +457,25 @@ "__type__": "cc.CompPrefabInfo", "fileId": "b1t/5ILB5NyYSZZ7cIvE+T" }, + { + "__type__": "cc.UIOpacity", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": { + "__id__": 19 + }, + "_opacity": 0, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "4c6i+ABgxO6pjQW1axaAYX" + }, { "__type__": "cc.PrefabInfo", "root": { @@ -477,7 +499,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 20 + "__id__": 22 }, "_contentSize": { "__type__": "cc.Size", @@ -505,7 +527,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 22 + "__id__": 24 }, "_type": 0, "_inverted": false, @@ -527,7 +549,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 24 + "__id__": 26 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -573,7 +595,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 26 + "__id__": 28 }, "_alignFlags": 40, "_target": null, @@ -622,32 +644,32 @@ }, "_children": [ { - "__id__": 29 + "__id__": 31 }, { - "__id__": 35 + "__id__": 37 }, { - "__id__": 43 + "__id__": 45 }, { - "__id__": 51 + "__id__": 53 }, { - "__id__": 57 + "__id__": 59 }, { - "__id__": 63 + "__id__": 65 } ], "_active": true, "_components": [ { - "__id__": 77 + "__id__": 79 } ], "_prefab": { - "__id__": 79 + "__id__": 81 }, "_lpos": { "__type__": "cc.Vec3", @@ -684,20 +706,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 28 + "__id__": 30 }, "_children": [], "_active": false, "_components": [ { - "__id__": 30 + "__id__": 32 }, { - "__id__": 32 + "__id__": 34 } ], "_prefab": { - "__id__": 34 + "__id__": 36 }, "_lpos": { "__type__": "cc.Vec3", @@ -734,11 +756,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 29 + "__id__": 31 }, "_enabled": true, "__prefab": { - "__id__": 31 + "__id__": 33 }, "_contentSize": { "__type__": "cc.Size", @@ -762,11 +784,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 29 + "__id__": 31 }, "_enabled": true, "__prefab": { - "__id__": 33 + "__id__": 35 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -846,23 +868,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 28 + "__id__": 30 }, "_children": [], "_active": true, "_components": [ - { - "__id__": 36 - }, { "__id__": 38 }, { "__id__": 40 + }, + { + "__id__": 42 } ], "_prefab": { - "__id__": 42 + "__id__": 44 }, "_lpos": { "__type__": "cc.Vec3", @@ -899,11 +921,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 35 + "__id__": 37 }, "_enabled": true, "__prefab": { - "__id__": 37 + "__id__": 39 }, "_contentSize": { "__type__": "cc.Size", @@ -927,11 +949,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 35 + "__id__": 37 }, "_enabled": true, "__prefab": { - "__id__": 39 + "__id__": 41 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -972,11 +994,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 35 + "__id__": 37 }, "_enabled": true, "__prefab": { - "__id__": 41 + "__id__": 43 }, "spriteName": "FREELoading", "_id": "" @@ -1004,23 +1026,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 28 + "__id__": 30 }, "_children": [], "_active": true, "_components": [ - { - "__id__": 44 - }, { "__id__": 46 }, { "__id__": 48 + }, + { + "__id__": 50 } ], "_prefab": { - "__id__": 50 + "__id__": 52 }, "_lpos": { "__type__": "cc.Vec3", @@ -1057,11 +1079,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 43 + "__id__": 45 }, "_enabled": true, "__prefab": { - "__id__": 45 + "__id__": 47 }, "_contentSize": { "__type__": "cc.Size", @@ -1085,11 +1107,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 43 + "__id__": 45 }, "_enabled": true, "__prefab": { - "__id__": 47 + "__id__": 49 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1130,11 +1152,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 43 + "__id__": 45 }, "_enabled": true, "__prefab": { - "__id__": 49 + "__id__": 51 }, "spriteName": "FREELoading1", "_id": "" @@ -1162,20 +1184,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 28 + "__id__": 30 }, "_children": [], "_active": true, "_components": [ { - "__id__": 52 + "__id__": 54 }, { - "__id__": 54 + "__id__": 56 } ], "_prefab": { - "__id__": 56 + "__id__": 58 }, "_lpos": { "__type__": "cc.Vec3", @@ -1212,11 +1234,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 51 + "__id__": 53 }, "_enabled": true, "__prefab": { - "__id__": 53 + "__id__": 55 }, "_contentSize": { "__type__": "cc.Size", @@ -1240,11 +1262,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 51 + "__id__": 53 }, "_enabled": true, "__prefab": { - "__id__": 55 + "__id__": 57 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1298,20 +1320,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 28 + "__id__": 30 }, "_children": [], "_active": true, "_components": [ { - "__id__": 58 + "__id__": 60 }, { - "__id__": 60 + "__id__": 62 } ], "_prefab": { - "__id__": 62 + "__id__": 64 }, "_lpos": { "__type__": "cc.Vec3", @@ -1348,11 +1370,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 57 + "__id__": 59 }, "_enabled": true, "__prefab": { - "__id__": 59 + "__id__": 61 }, "_contentSize": { "__type__": "cc.Size", @@ -1376,11 +1398,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 57 + "__id__": 59 }, "_enabled": true, "__prefab": { - "__id__": 61 + "__id__": 63 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1460,24 +1482,24 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 28 + "__id__": 30 }, "_children": [ { - "__id__": 64 + "__id__": 66 } ], "_active": false, "_components": [ { - "__id__": 72 + "__id__": 74 }, { - "__id__": 74 + "__id__": 76 } ], "_prefab": { - "__id__": 76 + "__id__": 78 }, "_lpos": { "__type__": "cc.Vec3", @@ -1514,23 +1536,23 @@ "_objFlags": 512, "__editorExtras__": {}, "_parent": { - "__id__": 63 + "__id__": 65 }, "_children": [], "_active": true, "_components": [ - { - "__id__": 65 - }, { "__id__": 67 }, { "__id__": 69 + }, + { + "__id__": 71 } ], "_prefab": { - "__id__": 71 + "__id__": 73 }, "_lpos": { "__type__": "cc.Vec3", @@ -1567,11 +1589,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 64 + "__id__": 66 }, "_enabled": true, "__prefab": { - "__id__": 66 + "__id__": 68 }, "_contentSize": { "__type__": "cc.Size", @@ -1595,11 +1617,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 64 + "__id__": 66 }, "_enabled": true, "__prefab": { - "__id__": 68 + "__id__": 70 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1640,11 +1662,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 64 + "__id__": 66 }, "_enabled": true, "__prefab": { - "__id__": 70 + "__id__": 72 }, "spriteName": "FREELoading2", "_id": "" @@ -1672,11 +1694,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 63 + "__id__": 65 }, "_enabled": true, "__prefab": { - "__id__": 73 + "__id__": 75 }, "_contentSize": { "__type__": "cc.Size", @@ -1700,11 +1722,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 63 + "__id__": 65 }, "_enabled": true, "__prefab": { - "__id__": 75 + "__id__": 77 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1758,11 +1780,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 28 + "__id__": 30 }, "_enabled": true, "__prefab": { - "__id__": 78 + "__id__": 80 }, "_contentSize": { "__type__": "cc.Size", @@ -1803,7 +1825,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 81 + "__id__": 83 }, "_contentSize": { "__type__": "cc.Size", @@ -1831,25 +1853,25 @@ }, "_enabled": true, "__prefab": { - "__id__": 83 + "__id__": 85 }, "mainNode": { - "__id__": 28 + "__id__": 30 }, "envEnterSpineNode": { "__id__": 13 }, "freeSpinCount": { - "__id__": 32 + "__id__": 34 }, "loadingProgressLabel": { - "__id__": 60 + "__id__": 62 }, "loadingNode": { - "__id__": 51 + "__id__": 53 }, "startBtn": { - "__id__": 63 + "__id__": 65 }, "_id": "" }, @@ -1867,7 +1889,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 85 + "__id__": 87 }, "_alignFlags": 45, "_target": null, @@ -1903,9 +1925,9 @@ }, "_enabled": true, "__prefab": { - "__id__": 87 + "__id__": 89 }, - "_opacity": 255, + "_opacity": 0, "_id": "" }, { diff --git a/assets/Game/Scripts/FreeSpinEnterSpine.ts b/assets/Game/Scripts/FreeSpinEnterSpine.ts index 1fdd0aa..49dd37b 100644 --- a/assets/Game/Scripts/FreeSpinEnterSpine.ts +++ b/assets/Game/Scripts/FreeSpinEnterSpine.ts @@ -42,11 +42,14 @@ export class FreeSpinEnterSpine extends Component { }); this.mainNode.active = true; - this.envEnterSpineNode.active = true; AudioManager.instance.playBGM('Change_Free_Bgm'); // 透明度 let opacity = this.node.getComponent(UIOpacity); opacity.opacity = 0; + this.envEnterSpineNode.active = true; + this.envEnterSpineNode.getComponent(UIOpacity).opacity = 255; + + tween(opacity) .to(0.5, { opacity: 255 }, { easing: 'quadIn' }) .start(); diff --git a/assets/Game/Scripts/Roller.ts b/assets/Game/Scripts/Roller.ts index d8b26af..7f66630 100644 --- a/assets/Game/Scripts/Roller.ts +++ b/assets/Game/Scripts/Roller.ts @@ -213,7 +213,7 @@ export class Roller extends Component { // ─── 旋转主流程 ────────────────────────────────────────────────────────── /** 开始旋转:现有图标向上飞出(退场动画) */ - startScroll() { + startScroll(isFastSpin) { if (this._info.state != ROLLER_STATE.STOP) return; AudioManager.instance.playSFX('Roller_Start'); @@ -228,7 +228,7 @@ export class Roller extends Component { seen.add(icon); this._exitingIcons.push(icon); let iconRef = icon; - let exitDelay = this._info.isFastSpin ? 0 : (this.row - 1 - i) * 0.02; + let exitDelay = isFastSpin ? 0 : (this.row - 1 - i) * 0.02; tween(iconRef) .delay(exitDelay) .to(0.14, { position: v3(0, exitTopY, 0) }, { easing: 'quadIn' }) @@ -251,7 +251,7 @@ export class Roller extends Component { this._info.state = ROLLER_STATE.ACCELERATE; // 退场结束后标记"可掉落" - let exitDuration = this._info.isFastSpin ? 0.14 : 0.14 + (this.row - 1) * 0.02; + let exitDuration = isFastSpin ? 0.14 : 0.14 + (this.row - 1) * 0.02; this.scheduleOnce(() => { if (this._info.state !== ROLLER_STATE.ACCELERATE) return; this._info.state = ROLLER_STATE.UNIFORM; diff --git a/assets/Game/Scripts/RollerManager.ts b/assets/Game/Scripts/RollerManager.ts index 5945fe1..72ace68 100644 --- a/assets/Game/Scripts/RollerManager.ts +++ b/assets/Game/Scripts/RollerManager.ts @@ -394,12 +394,12 @@ export class RollerManager extends Component { startScroll() { this._isManualStop = false; this.unscheduleAllCallbacks(); - if (this._isFastSpin) { + if (this._isFastSpin && !this._isFreeSpin) { for (let i = 0; i < this.allRollers.length; i++) { let roller = this.allRollers[i]; if (roller) { if (this._isManualStop) return; - roller.startScroll(); + roller.startScroll(true); } } } else { @@ -409,7 +409,7 @@ export class RollerManager extends Component { if (roller) { this.scheduleOnce(() => { if (this._isManualStop) return; - roller.startScroll(); + roller.startScroll(false); }, delay); } } diff --git a/assets/Game/Scripts/SlotGame.ts b/assets/Game/Scripts/SlotGame.ts index 849f920..694ccd5 100644 --- a/assets/Game/Scripts/SlotGame.ts +++ b/assets/Game/Scripts/SlotGame.ts @@ -308,6 +308,7 @@ export class SlotGame extends Component { // this.setWaysCount('...'); this.rollerManager.resetInfo(); + this.rollerManager.setIsFreeSpin(isFreeSpin) this.rollerManager.startScroll(); this._lastRemoveData = []; // ← 清除 }