Browse Source

单选多选皮肤

baowen 1 day ago
parent
commit
e9085d9c56

+ 11 - 3
assets/editor/script/LevelContainer.ts

@@ -218,11 +218,19 @@ export class LevelContainer extends Component {
      * 清空所有物品
      */
     private clearItems() {
-        this._findItems.forEach(item => {
+        // this._findItems.forEach(item => {
+        //     if (item && item.node) {
+        //         item.node.destroy();
+        //     }
+        // });
+        let count = this._findItems.length;
+        for(let i = 0; i < count; i++)
+        {
+            const item = this._findItems.pop();
             if (item && item.node) {
                 item.node.destroy();
             }
-        });
+        }
         this._findItems = [];
         this._foundItems = 0;
         this._totalItems = 0;
@@ -310,6 +318,6 @@ export class LevelContainer extends Component {
     {
         this.clearItems();
         this.swtichEditMode(false);
-        this.genLvlContent(this._bgPath, this._itemSpinePaths, Difficulty.difficutyData.difficutyCount, this._itemScales);
+        this.genLvlContent(this._bgPath, Skin.getSelectSkinPath(), Difficulty.difficutyData.difficutyCount, this._itemScales);
     }
 }

+ 8 - 3
assets/editor/script/SelectSkinPanel.ts

@@ -24,7 +24,7 @@ export class SelectSkinPanel extends Component {
     _hasCreatedItems:boolean = false;
 
     protected start(): void {
-        this.btnClose.node.on(Node.EventType.TOUCH_END,()=>this.node.active = false,this)
+        this.btnClose.node.on(Node.EventType.TOUCH_END,this.onBtnCloseClick,this)
     }
 
     init() {
@@ -39,6 +39,12 @@ export class SelectSkinPanel extends Component {
         });
     }
 
+    onBtnCloseClick()
+    {
+        this.node.active = false
+        EventMgr.ins.dispatchEvent("regenerate")
+    }
+
     createItem(key: number,spineOffset:Vec2) {
         let itemNode = this._itemPool.length > 0 ? this._itemPool.pop() : instantiate(this.itemPrefab);
         itemNode.parent = this.itemRoot;
@@ -51,12 +57,10 @@ export class SelectSkinPanel extends Component {
     }
     onSingleSkinClick() {
         Skin.setSelectStatu(true) 
-        EventMgr.ins.dispatchEvent("regenerate")
     }
 
     onMultiSkinClick() {
         Skin.setSelectStatu(false) 
-        EventMgr.ins.dispatchEvent("regenerate")
     }
 
     judgeSelect(key)
@@ -128,6 +132,7 @@ export class SelectSkinPanel extends Component {
     {
         Skin.removeAllSelectSkin()
         this.refreshSkinSelectioin()
+        EventMgr.ins.dispatchEvent("regenerate")
     }
 
     refreshSkinSelectioin()

+ 20 - 18
assets/script/Manager/LocalDataMgr.ts

@@ -172,12 +172,10 @@ export class UserDifficutyData {
 }
 
     constructor() {
-        let defaultData = {
-            difficutyCount: 10,
-            scales: [1.18, 1.16, 1.14, 0.3976, 0.3690, 0.3029,
-                0.0667, 0.0766, 0.0531, 0.0716]
-        }
-        this._difficutyData = sys.localStorage.getItem("difficutyData") ? Object.assign(defaultData, JSON.parse(sys.localStorage.getItem("difficutyData"))) : defaultData
+        const saved = sys.localStorage.getItem("difficutyData");
+        this._difficutyData = saved 
+            ? Object.assign({}, DEFAULT_DIFFICULTY_DATA, JSON.parse(saved))
+            : {...DEFAULT_DIFFICULTY_DATA};
     }
 
     get difficutyData(): DifficutyData {
@@ -205,17 +203,18 @@ export class UserDifficutyData {
         sys.localStorage.setItem("difficutyData", JSON.stringify(this._difficutyData));
     }
 
-    setDataToDefault()
-    {
-        let defaultData = {
-            difficutyCount: 10,
-            scales: [1.18, 1.16, 1.14, 0.3976, 0.3690, 0.3029,
-                0.0667, 0.0766, 0.0531, 0.0716]
-        }
-        this._difficutyData = defaultData;
-        this.saveDifficutyData();
+    setDataToDefault() {
+        this._difficutyData = {...DEFAULT_DIFFICULTY_DATA};
+        
+        this.createOrDeleteOtherScale();
     }
 }
+
+const DEFAULT_DIFFICULTY_DATA: DifficutyData = {
+    difficutyCount: 10,
+    scales: [1.18, 1.16, 1.14, 0.3976, 0.3690, 0.3029,
+             0.0667, 0.0766, 0.0531, 0.0716]
+};
 export const Difficulty = new UserDifficutyData();
 
 export interface SkinData {
@@ -388,6 +387,7 @@ export interface SuperFindData {
     title:string
     levelDesc:string
     imgPath:string
+    currentBgId:number
 }
 
 export class UserSuperFindData {
@@ -398,7 +398,8 @@ export class UserSuperFindData {
         let defaultData: SuperFindData = {
             title: `找到${Difficulty.getDifficutyData().difficutyCount}个跳舞的小熊`,
             levelDesc: `疯狂最强找茬-找小熊-第${1}关`,
-            imgPath: `image/bg1`
+            imgPath: `image/bg1`,
+            currentBgId:1
         }
         this._superFindData = sys.localStorage.getItem("superFindData") ? Object.assign(defaultData, JSON.parse(sys.localStorage.getItem("superFindData"))) : defaultData
     }
@@ -432,7 +433,8 @@ export class UserSuperFindData {
         let defaultData: SuperFindData = {
             title: `找到${Difficulty.getDifficutyData().difficutyCount}个跳舞的小熊`,
             levelDesc: `疯狂最强找茬-找小熊-第${1}关`,
-            imgPath: `image/bg1`
+            imgPath: `image/bg1`,
+            currentBgId:1
         }
         this._superFindData = defaultData
         this.saveSuperFindData()
@@ -509,7 +511,7 @@ export const allSkinList: { [key: number]: string } = {
     30: "prefab/spine/spine30",
 };
 
-export const defaultSkin = "spine/hecha"
+export const defaultSkin = "prefab/spine/spine01"
 
 export const canSelectMapList: { [key: number]: string } = {
     // 背景图片资源