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

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) {
//总时长1.5
//总时长1
let idx = Number.parseInt(key)
multNode.children[idx].getComponent(Sprite).spriteFrame = multiPos[key] >= 4 ? this.multiFrame[3] : this.multiFrame[2]
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()
tween(multNode.children[idx].getComponent(UIOpacity))
.delay(0.5)
.to(0.5, { opacity: 0 })
.delay(0.3)
.to(0.3, { opacity: 0 })
.start()
tween(labelNode.children[idx])
.to(0.3, {
.to(0.2, {
scale: new Vec3(1.3, 1.3, 1),
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)
})
.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.getComponent(Label).string = "x" + winMulti.toString()
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(() => {
totalMulti.active = false
AudioManager.instance.playSFX('Appear__multi__Win_Sound');

View File

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

View File

@ -660,12 +660,12 @@ export class Roller extends BaseRoller {
iconComponent.playDeleteAni();
this.scheduleOnce(() => {
this.iconFactory.recycleIcon(iconNode);
}, 1.2)
}, 0.6)
}
this.scheduleOnce(() => {
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 ?
(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
let animationTime = aniData.length > 0 ? 1.2 : 1.2;
let animationTime = aniData.length > 0 ? 0.6 : 0.6;
let rollersWithoutDeleteOps = [];
for (let i = 0; i < this.allRollers.length; i++) {
@ -723,7 +723,7 @@ export class RollerManager extends Component {
// AudioManager.instance.playSFX('Symbol_Change_Sound');
// }
this.returnIconsFromWinLayer(winLayerRef, positionsCopy);
}, 1.1); // 在动画结束前稍早将图标移回
}, 0.5); // 在动画结束前稍早将图标移回
}
// 将图标从win层返回到原始层
@ -818,7 +818,7 @@ export class RollerManager extends Component {
// 在第一个图标开始掉落时播放音效
this.scheduleOnce(() => {
AudioManager.instance.playSFX('Win_Symbol_Fall');
}, 0.3);
}, 0.1);
}
onDestroy(): void {

View File

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

View File

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