倍率合并动效添加,节奏调整

This commit is contained in:
TJH 2025-12-19 10:09:44 +08:00
parent 9ca0d6cc1d
commit 4af1253369
9 changed files with 2444 additions and 1703 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,335 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "totalMultiSpin",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 60,
"speed": 1,
"wrapMode": 1,
"enableTrsBlending": false,
"_duration": 0.3,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
},
{
"__id__": 11
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 16
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channels": [
{
"__id__": 3
},
{
"__id__": 5
},
{
"__id__": 7
},
{
"__id__": 9
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
"scale"
]
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 4
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.11666666666666667,
0.3
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 6
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.11666666666666667,
0.3
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 8
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.11666666666666667,
0.3
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 10
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.RealTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 12
},
"proxy": null
},
"_channel": {
"__id__": 14
}
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 13
},
"opacity"
]
},
{
"__type__": "cc.animation.ComponentPath",
"component": "cc.UIOpacity"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 15
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.11666666666666667,
0.3
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 255,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.AnimationClipAdditiveSettings",
"enabled": false,
"refClip": null
}
]

View File

@ -0,0 +1,13 @@
{
"ver": "2.0.3",
"importer": "animation-clip",
"imported": true,
"uuid": "753bb5ff-f1af-4c24-ad66-669ec1a22c1f",
"files": [
".cconb"
],
"subMetas": {},
"userData": {
"name": "totalMultiSpin"
}
}

View File

@ -285,24 +285,31 @@ export class SlotGame extends Component {
for (let key in multiPos) { for (let key in multiPos) {
//总时长1.5 //总时长1
let idx = Number.parseInt(key) let idx = Number.parseInt(key)
multNode.children[idx].getComponent(Sprite).spriteFrame = multiPos[key] >= 4 ? this.multiFrame[3] : this.multiFrame[2] multNode.children[idx].getComponent(Sprite).spriteFrame = multiPos[key] >= 4 ? this.multiFrame[3] : this.multiFrame[2]
tween(multNode.children[idx]) tween(multNode.children[idx])
.to(0.5, { scale: new Vec3(1.3, 1.3, 1) }) .to(0.3, { scale: new Vec3(1.3, 1.3, 1) })
.call(() => {
let totalMultiSpin = multNode.parent.getChildByName('totalMultiSpin')
totalMultiSpin.active = true
totalMultiSpin.setPosition(new Vec3((labelNode.children[posArr[0]].getPosition().x + labelNode.children[posArr[posArr.length - 1]].getPosition().x) / 2 + 115, -115, 0))
totalMultiSpin.getComponent(Animation).play()
})
.start() .start()
tween(multNode.children[idx].getComponent(UIOpacity)) tween(multNode.children[idx].getComponent(UIOpacity))
.delay(0.5) .delay(0.3)
.to(0.5, { opacity: 0 }) .to(0.3, { opacity: 0 })
.start() .start()
tween(labelNode.children[idx]) tween(labelNode.children[idx])
.to(0.3, { .to(0.2, {
scale: new Vec3(1.3, 1.3, 1), scale: new Vec3(1.3, 1.3, 1),
position: new Vec3(labelNode.children[idx].getPosition().x, 150, 0) position: new Vec3(labelNode.children[idx].getPosition().x, 150, 0)
}) })
.to(0.7, { .to(0.4, {
position: new Vec3((labelNode.children[posArr[0]].getPosition().x + labelNode.children[posArr[posArr.length - 1]].getPosition().x) / 2, 150, 0) position: new Vec3((labelNode.children[posArr[0]].getPosition().x + labelNode.children[posArr[posArr.length - 1]].getPosition().x) / 2, 150, 0)
}) })
.call(() => { .call(() => {
@ -315,7 +322,7 @@ export class SlotGame extends Component {
totalMulti.setPosition(new Vec3((labelNode.children[posArr[0]].getPosition().x + labelNode.children[posArr[posArr.length - 1]].getPosition().x) / 2 + 115, -65, 0)) totalMulti.setPosition(new Vec3((labelNode.children[posArr[0]].getPosition().x + labelNode.children[posArr[posArr.length - 1]].getPosition().x) / 2 + 115, -65, 0))
totalMulti.getComponent(Label).string = "x" + winMulti.toString() totalMulti.getComponent(Label).string = "x" + winMulti.toString()
tween(totalMulti) tween(totalMulti)
.to(0.5, { position: new Vec3(0, isfree ? -395 : -500, 0) }) .to(0.4, { position: new Vec3(0, isfree ? -395 : -500, 0) })
.call(() => { .call(() => {
totalMulti.active = false totalMulti.active = false
AudioManager.instance.playSFX('Appear__multi__Win_Sound'); AudioManager.instance.playSFX('Appear__multi__Win_Sound');

View File

@ -546,7 +546,7 @@ export class Icon extends Component {
// ascendSwitch.active = true; // ascendSwitch.active = true;
// skeleton2.setAnimation(0, `Sw_${this.lHeight}`, true); // skeleton2.setAnimation(0, `Sw_${this.lHeight}`, true);
this.playChangeSprite(true); this.playChangeSprite(true);
}, 1) }, 0.1)
} else { } else {
// 清理winSpine节点 // 清理winSpine节点
// let winSpine = this.node.getChildByName('winSpine'); // let winSpine = this.node.getChildByName('winSpine');

View File

@ -660,12 +660,12 @@ export class Roller extends BaseRoller {
iconComponent.playDeleteAni(); iconComponent.playDeleteAni();
this.scheduleOnce(() => { this.scheduleOnce(() => {
this.iconFactory.recycleIcon(iconNode); this.iconFactory.recycleIcon(iconNode);
}, 1.2) }, 0.6)
} }
this.scheduleOnce(() => { this.scheduleOnce(() => {
this.node.emit(ROLLER_EVENT.ICON_DELETED, this._rollerId); this.node.emit(ROLLER_EVENT.ICON_DELETED, this._rollerId);
}, 1.2) }, 0.6)
} }
@ -884,7 +884,7 @@ export class Roller extends BaseRoller {
// 根据最长的动画时间调整音效和事件触发时间 // 根据最长的动画时间调整音效和事件触发时间
let totalFallTime = updates.length > 0 ? let totalFallTime = updates.length > 0 ?
(updates.length - 1) * delayBetweenIcons + 0.3 : 0.3; (updates.length - 1) * delayBetweenIcons + 0.1: 0.1;

View File

@ -696,7 +696,7 @@ export class RollerManager extends Component {
// 9. 计算动画播放时间并处理没有删除图标的roller // 9. 计算动画播放时间并处理没有删除图标的roller
let animationTime = aniData.length > 0 ? 1.2 : 1.2; let animationTime = aniData.length > 0 ? 0.6 : 0.6;
let rollersWithoutDeleteOps = []; let rollersWithoutDeleteOps = [];
for (let i = 0; i < this.allRollers.length; i++) { for (let i = 0; i < this.allRollers.length; i++) {
@ -723,7 +723,7 @@ export class RollerManager extends Component {
// AudioManager.instance.playSFX('Symbol_Change_Sound'); // AudioManager.instance.playSFX('Symbol_Change_Sound');
// } // }
this.returnIconsFromWinLayer(winLayerRef, positionsCopy); this.returnIconsFromWinLayer(winLayerRef, positionsCopy);
}, 1.1); // 在动画结束前稍早将图标移回 }, 0.5); // 在动画结束前稍早将图标移回
} }
// 将图标从win层返回到原始层 // 将图标从win层返回到原始层
@ -818,7 +818,7 @@ export class RollerManager extends Component {
// 在第一个图标开始掉落时播放音效 // 在第一个图标开始掉落时播放音效
this.scheduleOnce(() => { this.scheduleOnce(() => {
AudioManager.instance.playSFX('Win_Symbol_Fall'); AudioManager.instance.playSFX('Win_Symbol_Fall');
}, 0.3); }, 0.1);
} }
onDestroy(): void { onDestroy(): void {

View File

@ -3100,13 +3100,13 @@
"__prefab": null, "__prefab": null,
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 381.8599853515625, "width": 352,
"height": 381.8599853515625 "height": 365
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
"x": 0.4830304405381119, "x": 0.49806820262562146,
"y": 0.4830304405381119 "y": 0.4981370063677226
}, },
"_id": "7f5YblwE5H84qJc33lO18N" "_id": "7f5YblwE5H84qJc33lO18N"
}, },
@ -3131,11 +3131,11 @@
"a": 255 "a": 255
}, },
"_skeletonData": { "_skeletonData": {
"__uuid__": "582eae3a-683a-4e08-a104-52d0744fba47", "__uuid__": "1cad30f1-b3af-41c1-a993-80959764ce5d",
"__expectedType__": "sp.SkeletonData" "__expectedType__": "sp.SkeletonData"
}, },
"defaultSkin": "default", "defaultSkin": "default",
"defaultAnimation": "2", "defaultAnimation": "animation",
"_premultipliedAlpha": false, "_premultipliedAlpha": false,
"_timeScale": 1, "_timeScale": 1,
"_preCacheMode": 0, "_preCacheMode": 0,

View File

@ -7,7 +7,7 @@ import { PREVIEW } from "cc/env"
const gameId = "rp_11001"; const gameId = "rp_11001";
// let apiaddr = "https://rpgames-api.rpfafafahkdev.com"; // let apiaddr = "https://rpgames-api.rpfafafahkdev.com";
let apiaddr = ""; let apiaddr = "";
let token = "eyJQIjoxMDA5NDksIkUiOjE3NjYwNjY3MzIsIlMiOjEwMDQsIkQiOiJycF8xMTAwMSJ9.ApeyE0nQEowXK5Nxx05JB-3iYIjHBjDPexwKAu1Ad2k"; let token = "eyJQIjoxMDA5NDksIkUiOjE3NjYxNTE4ODAsIlMiOjk5NiwiRCI6InJwXzExMDAxIn0.iuOahlUllcwgqHrtiJTK5-MDIAJExpET00Y2HiEH0P4";
let language = "en" let language = "en"