掉落回弹

This commit is contained in:
TJH 2025-09-26 16:29:47 +08:00
parent a53693da8a
commit f93532d44f
3 changed files with 81 additions and 70 deletions

View File

@ -2588,7 +2588,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "97qR41WJxKJJJy9bJnbW1j"
"fileId": "03qFCBPSdCy7xX38BxkLqR"
},
{
"__type__": "cc.PrefabInfo",
@ -2598,7 +2598,7 @@
"asset": {
"__id__": 0
},
"fileId": "23vkFVFCpEvrP4Hpkwr5bM",
"fileId": "82DSEzLmVCUI1PQIG5G6ln",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -2629,7 +2629,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d955HVHZ9GUqD+3ysgOMvC"
"fileId": "2c7r+ZcLBKRKygHd3kYZH2"
},
{
"__type__": "cc.PrefabInfo",
@ -2639,7 +2639,7 @@
"asset": {
"__id__": 0
},
"fileId": "450Pf9NUBKcbeKAY0YNfkb",
"fileId": "29ModmO2lHa4VMyPtWRsSD",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -2670,7 +2670,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c1JVUuswVP0L59YN0F8nhv"
"fileId": "7fdtZRBrJJi4/FFFQrg8RT"
},
{
"__type__": "5fc10Zl7lVO97/rr2J1uxWH",
@ -2694,7 +2694,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "76jowdEkRBrJJoGmBP5UGf"
"fileId": "2fiyiFwy5PQZlzVmtNLYpD"
},
{
"__type__": "5fd13+Xa69CZogb3Q/F1lnC",
@ -2867,7 +2867,7 @@
"asset": {
"__id__": 0
},
"fileId": "1druggF/JLa5ISed4zEuQk",
"fileId": "35/KmPwuJMTY4N5cThUIgb",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -2892,7 +2892,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "aaDbE3fYFDl6Aku8GR0vht"
"fileId": "93W8fzpxlKpLPNKP7vrkbz"
},
{
"__type__": "cc.UITransform",
@ -2920,7 +2920,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "283sx/R6VKq5GHhAxqdlWn"
"fileId": "7fZPkv7AFCfpxJNGpE7udi"
},
{
"__type__": "cc.Sprite",
@ -2965,7 +2965,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d5dv50OgdGoqUTD0JVnKwr"
"fileId": "c0nRc5ABZCHq3U84hHCfx+"
},
{
"__type__": "cc.PrefabInfo",
@ -2975,7 +2975,7 @@
"asset": {
"__id__": 0
},
"fileId": "e4MG3tr+RCfayu2UjZX2r2",
"fileId": "4bVC5pi/dCorHYF5j0FTNg",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -3230,7 +3230,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c6TU3OFGZHmZQCQ0QleJ7H"
"fileId": "31m/qAN29NMoBMWjvDTNi+"
},
{
"__type__": "cc.PrefabInfo",
@ -3240,7 +3240,7 @@
"asset": {
"__id__": 0
},
"fileId": "e033kTsvRNm736+aKAL9FW",
"fileId": "20L0NvJXVFZKMs1cvzGxQG",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -3271,7 +3271,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "5b/Duw725PjYwSmaNW9TQM"
"fileId": "02q0AQ2AlHnI8jz5QUEXgy"
},
{
"__type__": "cc.PrefabInfo",
@ -3281,7 +3281,7 @@
"asset": {
"__id__": 0
},
"fileId": "betOKTB3BHup+OM43NWr+n",
"fileId": "977T8a0OVI3Zat1SE/vFKJ",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -3312,7 +3312,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d49I6hS25LjI4dkq+4O4zB"
"fileId": "553eLZ6fVIf70nuZcM5gWj"
},
{
"__type__": "45522uB1sdFu4FJAojtnha4",
@ -3336,7 +3336,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "20HiIFhCxFj5Jv/ZU4NLZP"
"fileId": "1eY0NqUWJGaqTbZshAnm5+"
},
{
"__type__": "cc.PrefabInfo",
@ -3346,7 +3346,7 @@
"asset": {
"__id__": 0
},
"fileId": "05b0VXxXtM0o92+gWg8OTO",
"fileId": "a8BjiFdDVLY5tD8397kBAJ",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -3529,7 +3529,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "64DO4OgFNNx6tWC0xZpHLD"
"fileId": "835gETWJJCEqpSrekQrGxZ"
},
{
"__type__": "cc.PrefabInfo",
@ -3539,7 +3539,7 @@
"asset": {
"__id__": 0
},
"fileId": "866bbR+2lIfLUir+OnijV+",
"fileId": "b7lM5QQIZAgKbhMvYi6AwD",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -3570,7 +3570,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "7bx3IW2aVGYbVSLNqKgvsW"
"fileId": "152wdDkVtJ4I+4xqeQtNzu"
},
{
"__type__": "cc.PrefabInfo",
@ -3580,7 +3580,7 @@
"asset": {
"__id__": 0
},
"fileId": "bdPQOjVuhKDoFCMWa4BTmI",
"fileId": "c0jPW2GThF2p7MGrXC79h2",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -3611,7 +3611,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "a04FF/fadNFqSUcR2oEW52"
"fileId": "eefmDqU/ZNr7vSk+21bgwT"
},
{
"__type__": "45522uB1sdFu4FJAojtnha4",
@ -3635,7 +3635,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d9HomDaHlBYqJtYwRohhx2"
"fileId": "92ccOcl2FMVaZSk2u5vA8t"
},
{
"__type__": "cc.PrefabInfo",
@ -3645,7 +3645,7 @@
"asset": {
"__id__": 0
},
"fileId": "50AavRNjpBg7XRq/OhJIhO",
"fileId": "8cEIRUe8FOaorF0i+v1e9t",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -3828,7 +3828,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "eaB0LgkZxN/7SbATFMRJDy"
"fileId": "4ccftYfMNNT603gYomjfvE"
},
{
"__type__": "cc.PrefabInfo",
@ -3838,7 +3838,7 @@
"asset": {
"__id__": 0
},
"fileId": "ccx6JowIhE3qvhr+SOAJgt",
"fileId": "780hTuDeRAyr8nGs30o8fX",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -3869,7 +3869,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "fcxLBrKRRCz61KXMmWJYHj"
"fileId": "51X3Mg++FNdoUE7srDmczk"
},
{
"__type__": "cc.PrefabInfo",
@ -3879,7 +3879,7 @@
"asset": {
"__id__": 0
},
"fileId": "9cFlFiOy1F8oL1JI4dqE+T",
"fileId": "6aSRPSP2RMmKnWtqQz5hf4",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -3910,7 +3910,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "585B73lphCHp9hGP1IGf67"
"fileId": "a726FMkZ9J76aXAVbQv1CQ"
},
{
"__type__": "45522uB1sdFu4FJAojtnha4",
@ -3934,7 +3934,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "cclgmQCERILoX1kEpNgnK4"
"fileId": "0dRUGASupGGpO9IxOabbxg"
},
{
"__type__": "cc.PrefabInfo",
@ -3944,7 +3944,7 @@
"asset": {
"__id__": 0
},
"fileId": "4eGUNloLJHEYvpq3Doh2xz",
"fileId": "aeJP83l6pFJq0fj7wZaBUv",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4127,7 +4127,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "f13a3snp5DgpnWVvnF2Z46"
"fileId": "3brvOuqw5Nz5HB0DUnMlfV"
},
{
"__type__": "cc.PrefabInfo",
@ -4137,7 +4137,7 @@
"asset": {
"__id__": 0
},
"fileId": "27HB/Oue9ACKgKR5vFSlTP",
"fileId": "65bpnM7aZEfa9eU56Od7yA",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4168,7 +4168,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "60RE1T/7RIdbVx+nz/CDP3"
"fileId": "c3/x7tGRdGLILwthz9RXUR"
},
{
"__type__": "cc.PrefabInfo",
@ -4178,7 +4178,7 @@
"asset": {
"__id__": 0
},
"fileId": "89JrY7DUNAZpCKGBZg4YU0",
"fileId": "20PMr7NTVOkb2WT147/3T6",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4209,7 +4209,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "afd6IOvMdFtaOETVMhIJmT"
"fileId": "97+Z8C965Imo4fd980BZDv"
},
{
"__type__": "45522uB1sdFu4FJAojtnha4",
@ -4233,7 +4233,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "2cjfLiBtJOW6bC8JUhFwua"
"fileId": "9a4KVuTfBDXbFqBS0Y05IO"
},
{
"__type__": "cc.PrefabInfo",
@ -4243,7 +4243,7 @@
"asset": {
"__id__": 0
},
"fileId": "fagCMiN4tP25ZJydcsv/nk",
"fileId": "7cn7ZYz81OS5gn6i1QQMrI",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4426,7 +4426,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e3MjJcTOhEIJqtGWIzo2FF"
"fileId": "26JARd+uRFFLKDy1KGo/Lb"
},
{
"__type__": "cc.PrefabInfo",
@ -4436,7 +4436,7 @@
"asset": {
"__id__": 0
},
"fileId": "9aIZcDTXBJTrpPCUf1h6d+",
"fileId": "f9liwhVbRKEaPO3mDmC1ji",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4467,7 +4467,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "25Akeo8DZKQ41zUn6tnCWO"
"fileId": "b13JdYnx9Ifa52YtVYVHOs"
},
{
"__type__": "cc.PrefabInfo",
@ -4477,7 +4477,7 @@
"asset": {
"__id__": 0
},
"fileId": "b4gqJ54iNC4a2ACmqPXQwV",
"fileId": "24AO51CX5Pv5+opZF9qfmN",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4508,7 +4508,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "1dKFoazZxCqJb61mXEMLR7"
"fileId": "89Kxd7uIFI86WipDjHk7nH"
},
{
"__type__": "45522uB1sdFu4FJAojtnha4",
@ -4532,7 +4532,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "90B4ntkg1Kg6VLHqPFMOsx"
"fileId": "bfSi+WJ+REwIHes6ga7ZSk"
},
{
"__type__": "cc.PrefabInfo",
@ -4542,7 +4542,7 @@
"asset": {
"__id__": 0
},
"fileId": "101VDy3iJIwq/Eb7C25kxj",
"fileId": "9da5cDW7NF2LcWKxsLegru",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4725,7 +4725,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d5r+3UaRVD8qGHkj2wtcO/"
"fileId": "d41scaJVdEdLUVtaggTiXt"
},
{
"__type__": "cc.PrefabInfo",
@ -4735,7 +4735,7 @@
"asset": {
"__id__": 0
},
"fileId": "50s2+pM2hBUKjMIN1lRctO",
"fileId": "94L1dPz51CUp92in8YSzXO",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4766,7 +4766,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "38mmU6MpxChL2gmbr/7INA"
"fileId": "8ai8u138hObqYGVEhaELHv"
},
{
"__type__": "cc.PrefabInfo",
@ -4776,7 +4776,7 @@
"asset": {
"__id__": 0
},
"fileId": "10uBS/GApFDp+O6KZ7LCV3",
"fileId": "45k2EIRllLx4rLmm464c//",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4807,7 +4807,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e6dRLsALlPEqGelC5+IF36"
"fileId": "7eDSmQzRhGt6IMaw/ZBlSp"
},
{
"__type__": "45522uB1sdFu4FJAojtnha4",
@ -4831,7 +4831,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "ccAbHaScBIlLXmVxrAqsuT"
"fileId": "1flK75K59A+Y8N1A3TGeKz"
},
{
"__type__": "cc.PrefabInfo",
@ -4841,7 +4841,7 @@
"asset": {
"__id__": 0
},
"fileId": "77vpKC+C1MB6fnwo+c3ak9",
"fileId": "aapiFdqWBE4IqbCZcU9a0d",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -4866,7 +4866,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e23xfYrmtBbLxPX140o4gj"
"fileId": "5cVZ0ENc9AeK2OiEz5bK8f"
},
{
"__type__": "cc.UITransform",
@ -4894,7 +4894,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "0fRy2LgcNOra3nDx/OH2X6"
"fileId": "33Qgu5799LErdd+NqgzzKb"
},
{
"__type__": "cc.Sprite",
@ -4939,7 +4939,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "15HhvhZwhFC4e7WzenHvfy"
"fileId": "d9L1DsQVVKD6vcdciTlQ8+"
},
{
"__type__": "cc.PrefabInfo",
@ -4949,7 +4949,7 @@
"asset": {
"__id__": 0
},
"fileId": "b7cLZXPmNJPayV2Mhhkt9h",
"fileId": "9ff0Z8MMhBurtJEoT+0VUF",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@ -5245,7 +5245,7 @@
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -81.545,
"y": -88,
"z": 0
},
"_lrot": {

View File

@ -548,14 +548,14 @@ export class HRoller extends BaseRoller {
let position = this.getIconPosition(startPos, lHeight);
// 设置初始位置(向下偏移)
// icon.setPosition(position.add(v3(-offset, 0, 0)));
icon.setPosition(position.add(v3(-offset, 0, 0)));
icon.setPosition(position);
iconComponent.playSpawnAni();
// 创建回弹动画
// tween(icon)
// .by(time, { position: v3(offset, 0, 0) })
// .start();
tween(icon)
.by(time, { position: v3(offset, 0, 0) })
.start();
});
// 延迟切换到停止状态
@ -729,6 +729,12 @@ export class HRoller extends BaseRoller {
let time = 0.3;
tween(oldIconNode)
.to(time, { position: v3(newX, 0, 0) })
.call(() => {
tween(oldIconNode)
.by(0.2, { position: v3(50, 0, 0) })
.by(0.1, { position: v3(-50, 0, 0) })
.start();
})
.start();
}
@ -750,7 +756,7 @@ export class HRoller extends BaseRoller {
}
this.scheduleOnce(() => {
this.node.emit(ROLLER_EVENT.ICON_FALLEN, this._rollerId);
}, 0.5)
}, 0.8)
}

View File

@ -587,7 +587,7 @@ export class Roller extends BaseRoller {
*
*/
playBounceAnimation() {
let time = 0.1;
let time = 0.2;
let offset = 50;
// 获取所有图标
@ -608,14 +608,14 @@ export class Roller extends BaseRoller {
let position = this.getIconPosition(startPos, lHeight);
// 设置初始位置(向下偏移)
// icon.setPosition(position.add(v3(0, -offset, 0)));
icon.setPosition(position.add(v3(0, -offset, 0)));
icon.setPosition(position);
iconComponent.playSpawnAni();
// // 创建回弹动画
// tween(icon)
// .by(time, { position: v3(0, offset, 0) })
// .start();
tween(icon)
.by(time, { position: v3(0, offset, 0) })
.start();
});
// 延迟切换到停止状态
@ -889,7 +889,12 @@ export class Roller extends BaseRoller {
.to(fallTime, { position: v3(0, update.newY, 0) }, {
easing: 'quadIn' // 下落加速
})
.call(() => {
tween(update.node)
.by(0.2, { position: v3(0, 50, 0) })
.by(0.1, { position: v3(0, -50, 0) })
.start();
})
.start();
}
@ -912,7 +917,7 @@ export class Roller extends BaseRoller {
// 根据最长的动画时间调整音效和事件触发时间
let totalFallTime = updates.length > 0 ?
(updates.length - 1) * delayBetweenIcons + 0.3 : 0.3;
(updates.length - 1) * delayBetweenIcons + 0.5 : 0.5;