Selaa lähdekoodia

完成基础效果

181404010226 2 viikkoa sitten
vanhempi
commit
7cbdcfaca8
99 muutettua tiedostoa jossa 476 lisäystä ja 168 poistoa
  1. 0 9
      assets/Anime.meta
  2. 1 1
      assets/Data/测试关卡1.json
  3. 191 149
      assets/Scenes/MainScene.scene
  4. 14 0
      assets/resources.meta
  5. 0 0
      assets/resources/01.meta
  6. 0 0
      assets/resources/01/1.atlas
  7. 0 0
      assets/resources/01/1.atlas.meta
  8. 0 0
      assets/resources/01/1.json
  9. 0 0
      assets/resources/01/1.json.meta
  10. 0 0
      assets/resources/01/1.png
  11. 0 0
      assets/resources/01/1.png.meta
  12. 0 0
      assets/resources/01/12.png
  13. 0 0
      assets/resources/01/12.png.meta
  14. 0 0
      assets/resources/02.meta
  15. 0 0
      assets/resources/02/2.atlas
  16. 0 0
      assets/resources/02/2.atlas.meta
  17. 0 0
      assets/resources/02/2.json
  18. 0 0
      assets/resources/02/2.json.meta
  19. 0 0
      assets/resources/02/2.png
  20. 0 0
      assets/resources/02/2.png.meta
  21. 0 0
      assets/resources/02/22.png
  22. 0 0
      assets/resources/02/22.png.meta
  23. 0 0
      assets/resources/03.meta
  24. 0 0
      assets/resources/03/3.atlas
  25. 0 0
      assets/resources/03/3.atlas.meta
  26. 0 0
      assets/resources/03/3.json
  27. 0 0
      assets/resources/03/3.json.meta
  28. 0 0
      assets/resources/03/3.png
  29. 0 0
      assets/resources/03/3.png.meta
  30. 0 0
      assets/resources/03/32.png
  31. 0 0
      assets/resources/03/32.png.meta
  32. 0 0
      assets/resources/04.meta
  33. 0 0
      assets/resources/04/4.atlas
  34. 0 0
      assets/resources/04/4.atlas.meta
  35. 0 0
      assets/resources/04/4.json
  36. 0 0
      assets/resources/04/4.json.meta
  37. 0 0
      assets/resources/04/4.png
  38. 0 0
      assets/resources/04/4.png.meta
  39. 0 0
      assets/resources/05.meta
  40. 0 0
      assets/resources/05/5.atlas
  41. 0 0
      assets/resources/05/5.atlas.meta
  42. 0 0
      assets/resources/05/5.json
  43. 0 0
      assets/resources/05/5.json.meta
  44. 0 0
      assets/resources/05/5.png
  45. 0 0
      assets/resources/05/5.png.meta
  46. 0 0
      assets/resources/05/52.png
  47. 0 0
      assets/resources/05/52.png.meta
  48. 0 0
      assets/resources/06.meta
  49. 0 0
      assets/resources/06/6.atlas
  50. 0 0
      assets/resources/06/6.atlas.meta
  51. 0 0
      assets/resources/06/6.json
  52. 0 0
      assets/resources/06/6.json.meta
  53. 0 0
      assets/resources/06/6.png
  54. 0 0
      assets/resources/06/6.png.meta
  55. 0 0
      assets/resources/06/62.png
  56. 0 0
      assets/resources/06/62.png.meta
  57. 0 0
      assets/resources/07.meta
  58. 0 0
      assets/resources/07/7.atlas
  59. 0 0
      assets/resources/07/7.atlas.meta
  60. 0 0
      assets/resources/07/7.json
  61. 0 0
      assets/resources/07/7.json.meta
  62. 0 0
      assets/resources/07/7.png
  63. 0 0
      assets/resources/07/7.png.meta
  64. 0 0
      assets/resources/07/72.png
  65. 0 0
      assets/resources/07/72.png.meta
  66. 0 0
      assets/resources/07/73.png
  67. 0 0
      assets/resources/07/73.png.meta
  68. 0 0
      assets/resources/08.meta
  69. 0 0
      assets/resources/08/8.atlas
  70. 0 0
      assets/resources/08/8.atlas.meta
  71. 0 0
      assets/resources/08/8.json
  72. 0 0
      assets/resources/08/8.json.meta
  73. 0 0
      assets/resources/08/8.png
  74. 0 0
      assets/resources/08/8.png.meta
  75. 0 0
      assets/resources/08/82.png
  76. 0 0
      assets/resources/08/82.png.meta
  77. 0 0
      assets/resources/09.meta
  78. 0 0
      assets/resources/09/9.atlas
  79. 0 0
      assets/resources/09/9.atlas.meta
  80. 0 0
      assets/resources/09/9.json
  81. 0 0
      assets/resources/09/9.json.meta
  82. 0 0
      assets/resources/09/9.png
  83. 0 0
      assets/resources/09/9.png.meta
  84. 0 0
      assets/resources/09/92.png
  85. 0 0
      assets/resources/09/92.png.meta
  86. 0 0
      assets/resources/10.meta
  87. 0 0
      assets/resources/10/10.atlas
  88. 0 0
      assets/resources/10/10.atlas.meta
  89. 0 0
      assets/resources/10/10.json
  90. 0 0
      assets/resources/10/10.json.meta
  91. 0 0
      assets/resources/10/10.png
  92. 0 0
      assets/resources/10/10.png.meta
  93. 0 0
      assets/resources/10/102.png
  94. 0 0
      assets/resources/10/102.png.meta
  95. 7 3
      assets/scripts/CharacterMovementManager.ts
  96. 221 0
      assets/scripts/GameFlowManager.ts
  97. 9 0
      assets/scripts/GameFlowManager.ts.meta
  98. 29 2
      assets/scripts/QuestionAnswerManager.ts
  99. 4 4
      settings/v2/packages/information.json

+ 0 - 9
assets/Anime.meta

@@ -1,9 +0,0 @@
-{
-  "ver": "1.2.0",
-  "importer": "directory",
-  "imported": true,
-  "uuid": "27a94629-dd44-457a-810d-a7f0b5cbfc66",
-  "files": [],
-  "subMetas": {},
-  "userData": {}
-}

+ 1 - 1
assets/Data/测试关卡1.json

@@ -7,7 +7,7 @@
       "characterId": 1,
       "characterName": "角色1",
       "skinId": 1,
-      "skinName": "1",
+      "skinName": "3",
       "qaPairs": [
         {
           "question": "你是谁?",

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 191 - 149
assets/Scenes/MainScene.scene


+ 14 - 0
assets/resources.meta

@@ -0,0 +1,14 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "7bbcfcb2-0ed4-4aab-98b8-80f0112113de",
+  "files": [],
+  "subMetas": {},
+  "userData": {
+    "isBundle": true,
+    "bundleConfigID": "default",
+    "bundleName": "resources",
+    "priority": 8
+  }
+}

+ 0 - 0
assets/Anime/01.meta → assets/resources/01.meta


+ 0 - 0
assets/Anime/01/1.atlas → assets/resources/01/1.atlas


+ 0 - 0
assets/Anime/01/1.atlas.meta → assets/resources/01/1.atlas.meta


+ 0 - 0
assets/Anime/01/1.json → assets/resources/01/1.json


+ 0 - 0
assets/Anime/01/1.json.meta → assets/resources/01/1.json.meta


+ 0 - 0
assets/Anime/01/1.png → assets/resources/01/1.png


+ 0 - 0
assets/Anime/01/1.png.meta → assets/resources/01/1.png.meta


+ 0 - 0
assets/Anime/01/12.png → assets/resources/01/12.png


+ 0 - 0
assets/Anime/01/12.png.meta → assets/resources/01/12.png.meta


+ 0 - 0
assets/Anime/02.meta → assets/resources/02.meta


+ 0 - 0
assets/Anime/02/2.atlas → assets/resources/02/2.atlas


+ 0 - 0
assets/Anime/02/2.atlas.meta → assets/resources/02/2.atlas.meta


+ 0 - 0
assets/Anime/02/2.json → assets/resources/02/2.json


+ 0 - 0
assets/Anime/02/2.json.meta → assets/resources/02/2.json.meta


+ 0 - 0
assets/Anime/02/2.png → assets/resources/02/2.png


+ 0 - 0
assets/Anime/02/2.png.meta → assets/resources/02/2.png.meta


+ 0 - 0
assets/Anime/02/22.png → assets/resources/02/22.png


+ 0 - 0
assets/Anime/02/22.png.meta → assets/resources/02/22.png.meta


+ 0 - 0
assets/Anime/03.meta → assets/resources/03.meta


+ 0 - 0
assets/Anime/03/3.atlas → assets/resources/03/3.atlas


+ 0 - 0
assets/Anime/03/3.atlas.meta → assets/resources/03/3.atlas.meta


+ 0 - 0
assets/Anime/03/3.json → assets/resources/03/3.json


+ 0 - 0
assets/Anime/03/3.json.meta → assets/resources/03/3.json.meta


+ 0 - 0
assets/Anime/03/3.png → assets/resources/03/3.png


+ 0 - 0
assets/Anime/03/3.png.meta → assets/resources/03/3.png.meta


+ 0 - 0
assets/Anime/03/32.png → assets/resources/03/32.png


+ 0 - 0
assets/Anime/03/32.png.meta → assets/resources/03/32.png.meta


+ 0 - 0
assets/Anime/04.meta → assets/resources/04.meta


+ 0 - 0
assets/Anime/04/4.atlas → assets/resources/04/4.atlas


+ 0 - 0
assets/Anime/04/4.atlas.meta → assets/resources/04/4.atlas.meta


+ 0 - 0
assets/Anime/04/4.json → assets/resources/04/4.json


+ 0 - 0
assets/Anime/04/4.json.meta → assets/resources/04/4.json.meta


+ 0 - 0
assets/Anime/04/4.png → assets/resources/04/4.png


+ 0 - 0
assets/Anime/04/4.png.meta → assets/resources/04/4.png.meta


+ 0 - 0
assets/Anime/05.meta → assets/resources/05.meta


+ 0 - 0
assets/Anime/05/5.atlas → assets/resources/05/5.atlas


+ 0 - 0
assets/Anime/05/5.atlas.meta → assets/resources/05/5.atlas.meta


+ 0 - 0
assets/Anime/05/5.json → assets/resources/05/5.json


+ 0 - 0
assets/Anime/05/5.json.meta → assets/resources/05/5.json.meta


+ 0 - 0
assets/Anime/05/5.png → assets/resources/05/5.png


+ 0 - 0
assets/Anime/05/5.png.meta → assets/resources/05/5.png.meta


+ 0 - 0
assets/Anime/05/52.png → assets/resources/05/52.png


+ 0 - 0
assets/Anime/05/52.png.meta → assets/resources/05/52.png.meta


+ 0 - 0
assets/Anime/06.meta → assets/resources/06.meta


+ 0 - 0
assets/Anime/06/6.atlas → assets/resources/06/6.atlas


+ 0 - 0
assets/Anime/06/6.atlas.meta → assets/resources/06/6.atlas.meta


+ 0 - 0
assets/Anime/06/6.json → assets/resources/06/6.json


+ 0 - 0
assets/Anime/06/6.json.meta → assets/resources/06/6.json.meta


+ 0 - 0
assets/Anime/06/6.png → assets/resources/06/6.png


+ 0 - 0
assets/Anime/06/6.png.meta → assets/resources/06/6.png.meta


+ 0 - 0
assets/Anime/06/62.png → assets/resources/06/62.png


+ 0 - 0
assets/Anime/06/62.png.meta → assets/resources/06/62.png.meta


+ 0 - 0
assets/Anime/07.meta → assets/resources/07.meta


+ 0 - 0
assets/Anime/07/7.atlas → assets/resources/07/7.atlas


+ 0 - 0
assets/Anime/07/7.atlas.meta → assets/resources/07/7.atlas.meta


+ 0 - 0
assets/Anime/07/7.json → assets/resources/07/7.json


+ 0 - 0
assets/Anime/07/7.json.meta → assets/resources/07/7.json.meta


+ 0 - 0
assets/Anime/07/7.png → assets/resources/07/7.png


+ 0 - 0
assets/Anime/07/7.png.meta → assets/resources/07/7.png.meta


+ 0 - 0
assets/Anime/07/72.png → assets/resources/07/72.png


+ 0 - 0
assets/Anime/07/72.png.meta → assets/resources/07/72.png.meta


+ 0 - 0
assets/Anime/07/73.png → assets/resources/07/73.png


+ 0 - 0
assets/Anime/07/73.png.meta → assets/resources/07/73.png.meta


+ 0 - 0
assets/Anime/08.meta → assets/resources/08.meta


+ 0 - 0
assets/Anime/08/8.atlas → assets/resources/08/8.atlas


+ 0 - 0
assets/Anime/08/8.atlas.meta → assets/resources/08/8.atlas.meta


+ 0 - 0
assets/Anime/08/8.json → assets/resources/08/8.json


+ 0 - 0
assets/Anime/08/8.json.meta → assets/resources/08/8.json.meta


+ 0 - 0
assets/Anime/08/8.png → assets/resources/08/8.png


+ 0 - 0
assets/Anime/08/8.png.meta → assets/resources/08/8.png.meta


+ 0 - 0
assets/Anime/08/82.png → assets/resources/08/82.png


+ 0 - 0
assets/Anime/08/82.png.meta → assets/resources/08/82.png.meta


+ 0 - 0
assets/Anime/09.meta → assets/resources/09.meta


+ 0 - 0
assets/Anime/09/9.atlas → assets/resources/09/9.atlas


+ 0 - 0
assets/Anime/09/9.atlas.meta → assets/resources/09/9.atlas.meta


+ 0 - 0
assets/Anime/09/9.json → assets/resources/09/9.json


+ 0 - 0
assets/Anime/09/9.json.meta → assets/resources/09/9.json.meta


+ 0 - 0
assets/Anime/09/9.png → assets/resources/09/9.png


+ 0 - 0
assets/Anime/09/9.png.meta → assets/resources/09/9.png.meta


+ 0 - 0
assets/Anime/09/92.png → assets/resources/09/92.png


+ 0 - 0
assets/Anime/09/92.png.meta → assets/resources/09/92.png.meta


+ 0 - 0
assets/Anime/10.meta → assets/resources/10.meta


+ 0 - 0
assets/Anime/10/10.atlas → assets/resources/10/10.atlas


+ 0 - 0
assets/Anime/10/10.atlas.meta → assets/resources/10/10.atlas.meta


+ 0 - 0
assets/Anime/10/10.json → assets/resources/10/10.json


+ 0 - 0
assets/Anime/10/10.json.meta → assets/resources/10/10.json.meta


+ 0 - 0
assets/Anime/10/10.png → assets/resources/10/10.png


+ 0 - 0
assets/Anime/10/10.png.meta → assets/resources/10/10.png.meta


+ 0 - 0
assets/Anime/10/102.png → assets/resources/10/102.png


+ 0 - 0
assets/Anime/10/102.png.meta → assets/resources/10/102.png.meta


+ 7 - 3
assets/scripts/CharacterMovementManager.ts

@@ -37,7 +37,7 @@ export class CharacterMovementManager extends Component {
         tooltip: '人物移动距离(像素)'
     })
     moveDistance: number = 300;
-
+    
     private initialPosition: Vec3 = null;
     private currentAnimation: Tween<Node> = null;
 
@@ -55,7 +55,10 @@ export class CharacterMovementManager extends Component {
         if (this.dismissButton) {
             this.dismissButton.node.on(Button.EventType.CLICK, this.moveCharacterLeft, this);
         }
+        
+    
     }
+    
 
     /**
      * 人物移动到右侧(放行)
@@ -127,7 +130,8 @@ export class CharacterMovementManager extends Component {
      * 新人物从左向右进入
      */
     public characterEnter(): void {
-        if (!this.characterNode || !this.initialPosition) return;
+        console.log('characterEnter');
+        if (!this.characterNode) return;
 
         // 隐藏对话框
         if (this.dialogueManager) {
@@ -183,4 +187,4 @@ export class CharacterMovementManager extends Component {
             this.dismissButton.node.off(Button.EventType.CLICK, this.moveCharacterLeft, this);
         }
     }
-} 
+}

+ 221 - 0
assets/scripts/GameFlowManager.ts

@@ -0,0 +1,221 @@
+import { _decorator, Component, Node, resources, sp, Asset, Button } from 'cc';
+import { DataManager } from './DataManager';
+import { CharacterMovementManager } from './CharacterMovementManager';
+import { QuestionAnswerManager } from './QuestionAnswerManager';
+
+const { ccclass, property } = _decorator;
+
+@ccclass('GameFlowManager')
+export class GameFlowManager extends Component {
+    @property({
+        type: DataManager,
+        tooltip: '数据管理器引用'
+    })
+    dataManager: DataManager = null;
+
+    @property({
+        type: CharacterMovementManager,
+        tooltip: '人物移动管理器引用'
+    })
+    characterMovementManager: CharacterMovementManager = null;
+
+    @property({
+        type: QuestionAnswerManager,
+        tooltip: '问答管理器引用'
+    })
+    questionAnswerManager: QuestionAnswerManager = null;
+
+    @property({
+        type: Node,
+        tooltip: '角色显示节点(用于设置骨骼动画)'
+    })
+    characterSkeletonNode: Node = null;
+
+    @property({
+        type: Button,
+        tooltip: '放行按钮'
+    })
+    allowButton: Button = null;
+
+    @property({
+        type: Button,
+        tooltip: '赶走按钮'
+    })
+    dismissButton: Button = null;
+
+    // 当前关卡中的NPC索引
+    private currentNpcIndex: number = -1;
+    
+    // 当前关卡的NPC列表
+    private currentNpcs: any[] = [];
+
+    start() {
+        // 注册按钮事件
+        this.registerButtonEvents();
+        
+        // 开始游戏流程
+        this.startGameFlow();
+    }
+
+    /**
+     * 注册按钮事件
+     */
+    private registerButtonEvents(): void {
+        // 注册放行按钮点击事件
+        if (this.allowButton) {
+            this.allowButton.node.on(Button.EventType.CLICK, this.handleCharacterPassed, this);
+        } else {
+            console.error('放行按钮未设置');
+        }
+        
+        // 注册赶走按钮点击事件
+        if (this.dismissButton) {
+            this.dismissButton.node.on(Button.EventType.CLICK, this.handleCharacterDismissed, this);
+        } else {
+            console.error('赶走按钮未设置');
+        }
+    }
+
+    /**
+     * 开始游戏流程
+     */
+    private startGameFlow(): void {
+        // 获取当前关卡数据
+        const currentLevel = this.dataManager.getCurrentLevel();
+        if (!currentLevel) {
+            console.error('无法获取当前关卡数据');
+            return;
+        }
+
+        console.log(`开始关卡: ${currentLevel.name}`);
+        
+        // 获取当前关卡的NPC列表
+        this.currentNpcs = currentLevel.npcs;
+        
+        // 重置NPC索引
+        this.currentNpcIndex = -1;
+        
+        // 显示第一个NPC
+        this.showNextNpc();
+    }
+
+    /**
+     * 显示下一个NPC
+     */
+    public showNextNpc(): void {
+        console.log('showNextNpc');
+        this.currentNpcIndex++;
+        
+        // 检查是否还有NPC
+        if (this.currentNpcIndex >= this.currentNpcs.length) {
+            console.log('当前关卡所有NPC已处理完毕');
+            // 可以在这里添加关卡完成逻辑
+            return;
+        }
+        
+        // 获取当前NPC数据
+        const npc = this.currentNpcs[this.currentNpcIndex];
+        
+        // 配置角色外观
+        this.setupCharacterAppearance(npc.characterId, npc.skinName);
+        
+        // 配置问答对
+        this.setupQuestionAnswers(npc.qaPairs);
+        
+        // 让角色入场
+        this.characterMovementManager.characterEnter();
+    }
+
+    /**
+     * 设置角色外观
+     * @param characterId 角色ID
+     * @param skinName 皮肤名称
+     */
+    private setupCharacterAppearance(characterId: number, skinName: string): void {
+        if (!this.characterSkeletonNode) {
+            console.error('角色骨骼节点未设置');
+            return;
+        }
+
+        // 构建角色资源路径(左边补0确保两位数)
+        const characterFolderName = characterId < 10 ? `0${characterId}` : `${characterId}`;
+        const characterPath = `${characterFolderName}`;
+        
+        // 加载角色骨骼动画资源
+        resources.load(`${characterPath}/${characterId}`, sp.SkeletonData, (err, skeletonData) => {
+            if (err) {
+                console.error(`加载角色资源失败: ${characterPath}/${characterId}`, err);
+                return;
+            }
+            
+            // 获取骨骼动画组件
+            const skeletonComponent = this.characterSkeletonNode.getComponent(sp.Skeleton);
+            if (skeletonComponent) {
+                // 设置骨骼数据
+                skeletonComponent.skeletonData = skeletonData;
+
+                skeletonComponent.setSkin(skinName);
+
+                skeletonComponent.setAnimation(0, 'loop', true);
+              
+                console.log(`设置角色: ${characterId}, 皮肤: ${skinName}`);
+            } else {
+                console.error('角色节点上没有sp.Skeleton组件');
+            }
+        });
+    }
+
+    /**
+     * 设置问答对
+     * @param qaPairs 问答对数组
+     */
+    private setupQuestionAnswers(qaPairs: any[]): void {
+        if (!this.questionAnswerManager) {
+            console.error('问答管理器未设置');
+            return;
+        }
+        
+        // 替换所有问答对(而不是添加)
+        this.questionAnswerManager.replaceAllQuestionAnswers(qaPairs);
+    }
+
+    /**
+     * 处理放行角色
+     */
+    public handleCharacterPassed(): void {
+        // 让角色向右移动
+        this.characterMovementManager.moveCharacterRight();
+        
+        // 延迟显示下一个NPC
+        this.scheduleOnce(() => {
+            this.showNextNpc();
+        }, this.characterMovementManager.moveDuration + 0.5);
+    }
+
+    /**
+     * 处理赶走角色
+     */
+    public handleCharacterDismissed(): void {
+        // 让角色向左移动
+        this.characterMovementManager.moveCharacterLeft();
+        
+        // 延迟显示下一个NPC
+        this.scheduleOnce(() => {
+            this.showNextNpc();
+        }, this.characterMovementManager.moveDuration + 0.5);
+    }
+
+    /**
+     * 组件销毁时清理事件监听
+     */
+    onDestroy() {
+        // 移除按钮事件监听
+        if (this.allowButton) {
+            this.allowButton.node.off(Button.EventType.CLICK, this.handleCharacterPassed, this);
+        }
+        
+        if (this.dismissButton) {
+            this.dismissButton.node.off(Button.EventType.CLICK, this.handleCharacterDismissed, this);
+        }
+    }
+}

+ 9 - 0
assets/scripts/GameFlowManager.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.24",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "e69d1263-0aa2-4461-9bc3-4d40136144e3",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 29 - 2
assets/scripts/QuestionAnswerManager.ts

@@ -40,7 +40,7 @@ export class QuestionAnswerManager extends Component {
 
     start() {
         // 初始化默认问答对
-        this.initDefaultQuestionAnswers();
+        // this.initDefaultQuestionAnswers();
         
         // 注册按钮事件
         this.registerButtons();
@@ -101,6 +101,7 @@ export class QuestionAnswerManager extends Component {
      * 更新问题按钮文本
      */
     private updateQuestionButtonTexts(): void {
+        console.log('updateQuestionButtonTexts');
         // 为每个按钮设置对应的问题文本
         for (let i = 0; i < Math.min(this.questionLabels.length, this.currentQuestionIndices.length); i++) {
             const questionIndex = this.currentQuestionIndices[i];
@@ -206,4 +207,30 @@ export class QuestionAnswerManager extends Component {
             this.updateQuestionButtonTexts();
         }
     }
-} 
+    
+    /**
+     * 替换所有问答对并更新显示
+     * @param newQAPairs 新的问答对数组
+     */
+    public replaceAllQuestionAnswers(newQAPairs: QuestionAnswer[]): void {
+      
+        if (!newQAPairs) {
+            return;
+        }
+        
+        // 替换问答对
+        this.questionAnswerPairs = [...newQAPairs];
+        
+        // 重置问题索引为前三个
+        this.currentQuestionIndices = [0, 1, 2];
+        
+        // 如果新问答对数量少于3个,调整索引
+        while (this.currentQuestionIndices.length > 0 && 
+               this.currentQuestionIndices[this.currentQuestionIndices.length - 1] >= this.questionAnswerPairs.length) {
+            this.currentQuestionIndices.pop();
+        }
+        
+        // 更新按钮文本
+        this.updateQuestionButtonTexts();
+    }
+}

+ 4 - 4
settings/v2/packages/information.json

@@ -4,19 +4,19 @@
     "customSplash": {
       "id": "customSplash",
       "label": "customSplash",
-      "enable": false,
+      "enable": true,
       "customSplash": {
         "complete": false,
-        "form": "https://creator-api.cocos.com/api/form/show?"
+        "form": "https://creator-api.cocos.com/api/form/show?sid=34105c7feb7fe23dd749624126d55434"
       }
     },
     "removeSplash": {
       "id": "removeSplash",
       "label": "removeSplash",
-      "enable": false,
+      "enable": true,
       "removeSplash": {
         "complete": false,
-        "form": "https://creator-api.cocos.com/api/form/show?"
+        "form": "https://creator-api.cocos.com/api/form/show?sid=34105c7feb7fe23dd749624126d55434"
       }
     }
   }

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä