图层修改

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-14 16:02:20 +08:00
parent ff1542c24f
commit ae75fce80b
5121 changed files with 17930 additions and 16467861 deletions

View File

@@ -783,19 +783,24 @@ export class GameController extends Component {
}
private async finalizeEntityPresentation(levelRoot: Node, config: LevelConfig): Promise<void> {
await VisualAssets.refreshLevelEntityVisuals(levelRoot, config);
// 先按各自 spawn 对齐格子,再绑乘:避免「先同格绑乘 → 再写回各自 spawn」把骑乘格拆散
forEachLevelEntityNode(levelRoot, (node) => {
const mov = node.getComponent(Movement);
const spawn = mov?.getSpawnCell?.();
if (spawn) mov.shareCommittedCell(spawn);
});
const player = findLevelChildByName(levelRoot, 'Player')?.getComponent(PlayerController);
if (player) tryLinkPlayerVehicle(player);
forEachLevelEntityNode(levelRoot, (ch) => {
const vc = ch.getComponent(VehicleController);
if (vc) tryLinkVehicleRider(vc);
});
await VisualAssets.refreshLevelEntityVisuals(levelRoot, config);
forEachLevelEntityNode(levelRoot, (node) => {
const mov = node.getComponent(Movement);
const spawn = mov?.getSpawnCell?.();
if (spawn) mov.shareCommittedCell(spawn);
});
sortIsoTiles(levelRoot);
sortIsoTiles(levelRoot, true);
// 延迟一帧再强制全量:等 LevelDisplay.scheduleOnce 对齐完砖,开局金币/遮挡一次算准
this.scheduleOnce(() => {
if (levelRoot?.isValid) sortIsoTiles(levelRoot, true);
}, 0);
}
async createNewLevel(levelID: number) {