From b9f3dce173966fed6cca4e612bc67da024e87f2b Mon Sep 17 00:00:00 2001 From: richarjiang Date: Mon, 1 Jun 2026 11:36:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=20write=20=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 36 +++++++++++----------- assets/prefabs/PageWriteLevels.prefab | 43 +++++++++++++++++++++++++-- assets/prefabs/PageWriteLevels.ts | 32 ++++++-------------- 3 files changed, 69 insertions(+), 42 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 56b1e18..5788640 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -40,35 +40,21 @@ Git 历史采用 Conventional Commits,且摘要多为中文,例如 `feat: # Memory Context -# [mp-xieyingeng] recent context, 2026-05-14 4:59pm GMT+8 +# [mp-xieyingeng] recent context, 2026-06-01 11:17am GMT+8 Legend: 🎯session 🔴bugfix 🟣feature 🔄refactor ✅change 🔵discovery ⚖️decision 🚨security_alert 🔐security_note Format: ID TIME TYPE TITLE Fetch details: get_observations([IDs]) | Search: mem-search skill -Stats: 50 obs (12,200t read) | 1,692,994t work | 99% savings +Stats: 50 obs (15,406t read) | 2,405,914t work | 99% savings ### Apr 26, 2026 S1309 移除 PageLevel.ts 进入关卡时弹出体力扣减 toast (Apr 26 at 5:16 PM) ### Apr 27, 2026 -1346 9:21a 🔴 移除进入游戏后的体力扣减 toast 提示 -1347 " 🔴 移除进入游戏后的体力扣减 toast 提示 -1348 " 🟣 首页添加体力值显示功能 S1308 移除进入游戏关卡时弹出体力扣减的 toast 提示 (Apr 27 at 9:21 AM) S1310 移除进入游戏体力扣减 toast 并在首页添加体力显示 (Apr 27 at 9:22 AM) S1311 移除体力扣减 toast 并完善首页体验 (Apr 27 at 9:23 AM) -1349 9:25a ✅ PageHome.ts 添加 ToastManager 导入 -1350 " ✅ PK按钮点击改为提示"功能开发中" S1313 Implement object-fit: cover image scaling in Cocos Creator to prevent downloaded images from being distorted (Apr 27 at 9:26 AM) -1351 9:32a 🟣 Stamina animation system for level entry -1352 " 🔵 Cocos Creator game project structure discovered -1354 " 🟣 StarGame 按钮点击动画需求 -1356 " 🔵 体力系统架构发现 -1353 9:33a 🔵 StaminaManager API confirmed for stamina operations -1355 9:37a 🔵 项目结构和现有代码发现 -1357 9:38a 🔵 EnterLevelData 结构分析 -1359 9:39a 🟣 Stamina animation system implemented for game entry flow -1358 9:41a ⚖️ 体力值飞行动画实现计划制定完成 1362 9:45a 🟣 Image Cover Mode Scaling in Cocos Creator S1312 Fix image distortion in PageLevel.ts by implementing object-fit: cover behavior for downloaded images (Apr 27 at 9:45 AM) 1360 " ✅ Cocos Creator animation imports added to PageHome.ts @@ -112,6 +98,22 @@ S1317 Implement CSS cover-mode image scaling for PageLevel.ts mainImage nodes (A 1550 4:45p 🟣 CommonModal dual-button feature completed and validated 1551 4:46p 🔄 CommonModal API refactoring: remove buttonHint, clean button logic 1552 4:47p 🔄 CommonModal dual-button refactor complete with cleaner API +### May 14, 2026 +1630 4:59p 🟣 PagePKDetail.prefab 新增参与人数标签节点 +1631 " 🟣 PagePKDetail 新增参与人数标签 +### Jun 1, 2026 +1771 11:07a 🔵 List Height Adaptation Issue on Different Resolution Phones in PageWriteLevels +1772 " 🔵 PageWriteLevels ScrollView Height Calculation Architecture Fully Mapped +1773 " 🔵 LevelList ScrollView Widget Has Only Top Alignment — View Node Has No Widget +1774 " 🔵 Root Cause Confirmed: VIEW_HEIGHT=1300 Floor Causes List Overflow on Short Phones +1775 11:13a 🔵 PageWriteLevels Prefab Structure Confirmed Clean +1777 " 🔄 _resizeScrollViewport Delegates Layout to Cocos Widget System +1776 11:14a 🔵 PageWriteLevels Prefab Contains 233 JSON Array Entries +1778 11:15a 🟣 PageWriteLevels ScrollView View Node Gets cc.Widget for Auto-Layout +1779 " 🔵 PageWriteLevels Layout Node Tree Verified After Widget Changes +1780 11:16a 🔵 TypeScript Check Requires Cocos Creator to Generate temp/declarations First +1781 " 🔵 New Widget Bottom Inset Produces Shorter Viewport on Small Screens vs Old Minimum +1782 " 🔵 PageWriteLevels Prefab __id__ Reference Integrity Confirmed Valid -Access 1693k tokens of past work via get_observations([IDs]) or mem-search skill. +Access 2406k tokens of past work via get_observations([IDs]) or mem-search skill. diff --git a/assets/prefabs/PageWriteLevels.prefab b/assets/prefabs/PageWriteLevels.prefab index 5ad1128..95d1a39 100644 --- a/assets/prefabs/PageWriteLevels.prefab +++ b/assets/prefabs/PageWriteLevels.prefab @@ -4066,6 +4066,9 @@ }, { "__id__": 172 + }, + { + "__id__": 233 } ], "_prefab": { @@ -4523,12 +4526,12 @@ "__prefab": { "__id__": 192 }, - "_alignFlags": 1, + "_alignFlags": 5, "_target": null, "_left": 0, "_right": 0, "_top": 255.272, - "_bottom": 0, + "_bottom": 752.53, "_horizontalCenter": 0, "_verticalCenter": 0, "_isAbsLeft": true, @@ -5486,5 +5489,41 @@ "fileId": "c46/YsCPVOJYA4mWEpNYRx", "instance": null, "targetOverrides": null + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 167 + }, + "_enabled": true, + "__prefab": { + "__id__": 234 + }, + "_alignFlags": 45, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 940, + "_originalHeight": 1300, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "efGg9r8a5Gdr8RY5lZpQMz" } ] diff --git a/assets/prefabs/PageWriteLevels.ts b/assets/prefabs/PageWriteLevels.ts index b21917a..4b83555 100644 --- a/assets/prefabs/PageWriteLevels.ts +++ b/assets/prefabs/PageWriteLevels.ts @@ -148,39 +148,25 @@ export class PageWriteLevels extends BaseView { } private _resizeScrollViewport(): void { - if (!this.scrollView || !this._viewTransform || !this.shareTitleEditBox) { + if (!this.scrollView || !this._viewTransform) { return; } - const rootTransform = this.node.getComponent(UITransform); const scrollTransform = this.scrollView.getComponent(UITransform); const scrollWidget = this.scrollView.getComponent('cc.Widget') as any; - const shareTitleTransform = this.shareTitleEditBox.getComponent(UITransform); - const shareTitleWidget = this.shareTitleEditBox.getComponent('cc.Widget') as any; - const bottomMaskNode = this.scrollView.getChildByName('ScrolViewMask'); + const viewWidget = this._viewTransform.node.getComponent('cc.Widget') as any; - if (!rootTransform || !scrollTransform || !shareTitleTransform || !scrollWidget || !shareTitleWidget) { + if (!scrollTransform) { return; } - const topInset = Number(scrollWidget.top ?? 0); - const shareBottomInset = Number(shareTitleWidget.bottom ?? 0); - const shareTitleHeight = shareTitleTransform.height * Math.abs(this.shareTitleEditBox.scale.y); - const nextHeight = Math.max( - LAYOUT_CONFIG.VIEW_HEIGHT, - rootTransform.height - topInset - shareBottomInset - shareTitleHeight - LAYOUT_CONFIG.LIST_BOTTOM_GAP_TO_TITLE, + scrollWidget?.updateAlignment?.(); + viewWidget?.updateAlignment?.(); + + this._viewTransform.setContentSize( + scrollTransform.contentSize.width, + scrollTransform.contentSize.height, ); - - scrollTransform.setContentSize(scrollTransform.width, nextHeight); - this._viewTransform.setContentSize(this._viewTransform.width, nextHeight); - - if (bottomMaskNode) { - bottomMaskNode.setPosition( - bottomMaskNode.position.x, - -(nextHeight / 2) + 30, - bottomMaskNode.position.z, - ); - } } private async _initLevelList(): Promise {