Browse Source

scene_change_bug

0224995 3 ngày trước cách đây
mục cha
commit
db5aa168d4

+ 8 - 8
assets/Scene/StartScene.scene

@@ -98,7 +98,7 @@
     "_prefab": null,
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 640.0000000000001,
+      "x": 639.9999999999999,
       "y": 360.00000000000006,
       "z": 0
     },
@@ -256,7 +256,7 @@
     "_prefab": null,
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": -1.1368683772161603e-13,
+      "x": 1.1368683772161603e-13,
       "y": 0,
       "z": 0
     },
@@ -3892,7 +3892,7 @@
         "__id__": 150
       }
     ],
-    "_active": false,
+    "_active": true,
     "_components": [
       {
         "__id__": 288
@@ -12707,7 +12707,7 @@
     "__prefab": null,
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 1280.0000000000002,
+      "width": 1279.9999999999998,
       "height": 720
     },
     "_anchorPoint": {
@@ -12807,7 +12807,7 @@
     "__prefab": null,
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 1280.0000000000002,
+      "width": 1279.9999999999998,
       "height": 720
     },
     "_anchorPoint": {
@@ -12907,7 +12907,7 @@
     "__prefab": null,
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 1280.0000000000002,
+      "width": 1279.9999999999998,
       "height": 720
     },
     "_anchorPoint": {
@@ -12959,7 +12959,7 @@
     "__prefab": null,
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 1280.0000000000002,
+      "width": 1279.9999999999998,
       "height": 720
     },
     "_anchorPoint": {
@@ -13960,7 +13960,7 @@
     "__prefab": null,
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 1280.0000000000002,
+      "width": 1279.9999999999998,
       "height": 720
     },
     "_anchorPoint": {

+ 58 - 30
assets/Script/Frames/LocalDt.ts

@@ -1,38 +1,66 @@
 class LocalStorage {
     static instance: LocalStorage = null;
-    //保存关卡
-    saveLvDt(curLv: number) {
-        localStorage.setItem("curLv", JSON.stringify(curLv));
+    // //保存关卡
+    // saveLvDt(curLv: number) {
+    //     localStorage.setItem("curLv", JSON.stringify(curLv));
+    // }
+    // //获取关卡
+    // getLvDt(): number {
+    //     const jsonStr = localStorage.getItem("curLv")
+    //     return JSON.parse(jsonStr);
+    // }
+    // //保存玩家名字
+    // savePlayerName(name: string) {
+    //     localStorage.setItem("PlayerName", JSON.stringify(name));
+    // }
+    // //获取玩家名字
+    // getPlayerName(): string {
+    //     const jsonStr = localStorage.getItem("PlayerName")
+    //     return JSON.parse(jsonStr);
+    // }
+    // //金币
+    // saveGold(num: number) {
+    //     localStorage.setItem("Gold", JSON.stringify(num));
+    // }
+    // getGold(): number {
+    //     const jsonStr = localStorage.getItem("Gold")
+    //     return JSON.parse(jsonStr);
+    // }
+    // //钻石
+    // saveDiamond(num: number) {
+    //     localStorage.setItem("Diamond", JSON.stringify(num));
+    // }
+    // getDiamond(): number {
+    //     const jsonStr = localStorage.getItem("Diamond")
+    //     return JSON.parse(jsonStr);
+    // }
+    /**
+     * 保存数据
+     * @param dtName 数据名
+     * @param dt 数据
+     */
+    saveData(dtName: string, dt: number | string) {
+        localStorage.setItem(dtName, JSON.stringify(dt));
     }
-    //获取关卡
-    getLvDt(): number {
-        const jsonStr = localStorage.getItem("curLv")
-        return JSON.parse(jsonStr);
-    }
-    //保存玩家名字
-    savePlayerName(name: string) {
-        localStorage.setItem("PlayerName", JSON.stringify(name));
-    }
-    //获取玩家名字
-    getPlayerName(): string {
-        const jsonStr = localStorage.getItem("PlayerName")
-        return JSON.parse(jsonStr);
-    }
-    //金币
-    saveGold(num: number) {
-        localStorage.setItem("Gold", JSON.stringify(num));
-    }
-    getGold(): number {
-        const jsonStr = localStorage.getItem("Gold")
+
+    /**
+     * 获取数据
+     * @param dtName 数据名
+     * @returns 
+     */
+    getData(dtName: string): number | string {
+        const jsonStr = localStorage.getItem(dtName);
         return JSON.parse(jsonStr);
     }
-    //钻石
-    saveDiamond(num: number) {
-        localStorage.setItem("Diamond", JSON.stringify(num));
-    }
-    getDiamond(): number {
-        const jsonStr = localStorage.getItem("Diamond")
-        return JSON.parse(jsonStr);
+
+    /**
+     * 清除数据并初始化
+     */
+    clearAll() {
+        localStorage.clear();
+        this.saveData("Diamond", 188);
+        this.saveData("Gold", 5888);
+        this.saveData("curLv", 1);
     }
 }
 export const localDt: LocalStorage = LocalStorage.instance = new LocalStorage();

+ 1 - 0
assets/Script/Game/GameFrameWork/GameMgr.ts

@@ -10,6 +10,7 @@ export class GameMgr extends Component {
     private _modluers:ModulerBase[] = [];
     //单例接口
     static get Instance(){return GameMgr._instance}
+    
     protected onLoad(): void {
         //单例赋值 this
         GameMgr._instance = this;

+ 16 - 9
assets/Script/Game/MyApp.ts

@@ -32,19 +32,26 @@ export class MyApp extends Component {
             loadingUI?.updateProgress(finish / total);
             loadingUI?.updateWhichRes(2);
         });
-        if (!localDt.getGold()) {
-            localDt.saveGold(8888);
-        }
-        if (!localDt.getDiamond()) {
-            localDt.saveDiamond(200);
-        }
-        if (!localDt.getLvDt()) {
-            localDt.saveLvDt(1);
-        }
+        this.initData();
         this.loadingUI.active = false;
         if (!MyApp.hasOpenedStartUI) {
             UIMgr.openUI("Start");
             MyApp.hasOpenedStartUI = true;
         }
     }
+
+    private initData() {
+        if (!localDt.getData("Gold")) {
+            localDt.saveData("Gold", 8888);
+        }
+        if (!localDt.getData("Diamond")) {
+            localDt.saveData("Diamond", 200);
+        }
+        if (!localDt.getData("curLv")) {
+            localDt.saveData("curLv", 1);
+        }
+        if (!localDt.getData("availableCardSlot")) {
+            localDt.saveData("availableCardSlot", 4);
+        }
+    }
 }

+ 2 - 2
assets/Script/Game/MyApp/BattleSceneSelect.ts

@@ -1,4 +1,4 @@
-import { _decorator, Component, Label, Node, Sprite } from 'cc';
+import { _decorator, Label, Sprite } from 'cc';
 import { UIBase } from '../GameFrameWork/UIBase';
 import { UIMgr } from '../../Frames/UIManager';
 import { resMgr } from '../../Frames/ResourcesMgr';
@@ -13,7 +13,7 @@ export class BattleSceneSelect extends UIBase {
         this._curLv(GameInfo.Instance.getCurlv());
         this._winNumber(GameInfo.Instance.getWin());
         this._failNumber(GameInfo.Instance.getFail());
-        this._gold(localDt.getGold());
+        this._gold(Number(localDt.getData("Gold")));
         this._diamond(GameInfo.Instance.getDiamond());
         this._grade(GameInfo.Instance.getGrade());
     }

+ 6 - 2
assets/Script/Game/MyApp/GameScene/Data/PopupUIDataConfig.ts

@@ -1,3 +1,5 @@
+import { localDt } from "db://assets/Script/Frames/LocalDt";
+
 export class PopupUIDataConfig {
     private _uiName: string = null;
     private _typeImg: string = null;
@@ -41,7 +43,8 @@ export class PopupUIDataConfig {
     }
 
     getAvailableCardSlot(): number{
-        return this._availableCardSlot;
+        return Number(localDt.getData("availableCardSlot"));
+        //return this._availableCardSlot;
     }
 
     setUIName(name: string) { this._uiName = name };
@@ -58,7 +61,8 @@ export class PopupUIDataConfig {
     }
 
     setAvailableCardSlot(nextCount: number){
-        this._availableCardSlot = nextCount;
+        localDt.saveData("availableCardSlot", nextCount)
+        //this._availableCardSlot = nextCount;
     }
 }
 

+ 15 - 12
assets/Script/Game/MyApp/GameScene/GameOver.ts

@@ -1,4 +1,4 @@
-import { _decorator,  director, Label, log, PhysicsSystem, } from 'cc';
+import { _decorator, director, EAxisDirection, Label, log, PhysicsSystem, } from 'cc';
 import { ModulerBase } from '../../GameFrameWork/ModulerBase';
 import { resMgr } from '../../../Frames/ResourcesMgr';
 import { GameInfo } from '../../../GameInfo';
@@ -50,9 +50,11 @@ export class GameOver extends ModulerBase {
     protected onStart(): void {
         this.onBtnClick("_btnLeft", this._onBtnBack, this);
         this.onBtnClick("_btnRight", this._onBtnRight, this);
+
         director.preloadScene("StartScene")
     }
     config() {
+        GameInfo.Instance.setIsGameOver(true);
         this.getSprite("_gameOverUITitle").spriteFrame =
             GameInfo.Instance.getOverWin() ?
                 resMgr.getSpriteFrame("GameWin") :
@@ -66,9 +68,9 @@ export class GameOver extends ModulerBase {
 
         const kill: number = this.calculateReward(GameInfo.Instance.getKillCount(), this.KillRewardConfig);
         const life: number = this.calculateReward(GameInfo.Instance.getLifePecent(), this.LifeRewardConfig);
-        const stageClear: number = this.calculateReward(GameInfo.Instance.getCurlv(), this.newresultRewardConfig);
+        const stageClear: number = this.calculateReward(Number(GameInfo.Instance.getCurlv()), this.newresultRewardConfig);
 
-        this.xp = GameInfo.Instance.getCurlv() * 30;
+        this.xp = Number(GameInfo.Instance.getCurlv()) * 30;
         this.totalGold = kill + life + stageClear;
 
         const lifeDia: number = Math.floor(life * 0.08);
@@ -87,12 +89,14 @@ export class GameOver extends ModulerBase {
     }
 
     private _onBtnBack() {
-        director.resume()
-        director.purgeDirector();
+        //director.purgeDirector();
         this.addReward();
         this.clearDt();
         this.hide(false);
-        director.loadScene("StartScene");
+        director.loadScene("StartScene", () => {
+            director.resume();
+            GameInfo.Instance.setIsGameOver(false);
+        });
     }
 
     private _onBtnRight() {
@@ -119,25 +123,24 @@ export class GameOver extends ModulerBase {
         GameInfo.Instance.setKillCount(0);
         GameInfo.Instance.setLifePecent(0);
         GameInfo.Instance.setOverWin(false);
-        GameInfo.Instance.setIsGameOver(false);
     }
 
     private addReward() {
         const map: Map<string, number> = new Map();
-        map.set("GameOverRewardGold", this.totalGold + localDt.getGold());
+        map.set("GameOverRewardGold", (this.totalGold + Number(localDt.getData("Gold"))));
         map.set("GameOverRewardDia", this.totalDia + GameInfo.Instance.getDiamond());
         map.set("Xp", this.xp + GameInfo.Instance.getCurGradeExp());
 
         if (GameInfo.Instance.getOverWin()) {
-            GameInfo.Instance.setCurLv(GameInfo.Instance.getCurlv() + 1);
-            map.set("CurLv", GameInfo.Instance.getCurlv());
+            GameInfo.Instance.setCurLv(Number(GameInfo.Instance.getCurlv()) + 1);
+            map.set("CurLv", Number(GameInfo.Instance.getCurlv()));
         }
         GameInfo.Instance.setGameOverReward(map);
         //GameInfo.Instance.setGold(this.totalGold + GameInfo.Instance.getGold());
-        localDt.saveGold(this.totalGold + localDt.getGold());
+        localDt.saveData("Gold", this.totalGold + Number(localDt.getData("Gold")));
 
         GameInfo.Instance.setDiamond(this.totalDia + GameInfo.Instance.getDiamond());
-        localDt.saveDiamond(GameInfo.Instance.getDiamond())
+        localDt.saveData("Diamond", GameInfo.Instance.getDiamond())
     }
 
     //初始化场景 重置数据

+ 13 - 7
assets/Script/Game/MyApp/GameScene/Pause.ts

@@ -1,5 +1,6 @@
-import { _decorator, director } from 'cc';
+import { _decorator, director, PhysicsSystem2D } from 'cc';
 import { ModulerBase } from '../../GameFrameWork/ModulerBase';
+import { GameInfo } from '../../../GameInfo';
 const { ccclass, property } = _decorator;
 
 @ccclass('Pause')
@@ -9,20 +10,25 @@ export class Pause extends ModulerBase {
         this.onBtnClick("_continue", this._onContinue, this);
         this.onBtnClick("_btnPause", this._onPause, this)
     }
-
-    private _onPause(){
+    //暂停
+    private _onPause() {
+        GameInfo.Instance.setIsGameOver(true);
         director.pause();
         this.getNode("_pause").active = true;
     }
+    //返回开始场景
     private _onBtnBack() {
-        director.resume();
         this.getNode("_pause").active = false;
-        director.preloadScene("StartScene");
-        director.loadScene("StartScene");
+        director.loadScene("StartScene", () => {
+            director.resume();
+            GameInfo.Instance.setIsGameOver(false);
+        });
     }
-    private _onContinue(){
+    //继续游戏
+    private _onContinue() {
         this.getNode("_pause").active = false;
         director.resume();
+        GameInfo.Instance.setIsGameOver(false)
     }
 }
 

+ 1 - 1
assets/Script/Game/MyApp/GameScene/TouchSkill.ts

@@ -1,4 +1,4 @@
-import { _decorator, animation, Animation, Component, EventTouch, instantiate, Label, Node, Sprite, UITransform, Vec2, Vec3 } from 'cc';
+import { _decorator, Animation, Component, EventTouch, instantiate, Label, Node, Sprite, UITransform, Vec2, Vec3 } from 'cc';
 import { GameInfo } from '../../../GameInfo';
 import { resMgr } from '../../../Frames/ResourcesMgr';
 import { LifeBar } from './LifeBar';

+ 4 - 1
assets/Script/Game/MyApp/Role.ts

@@ -127,9 +127,12 @@ export class Role extends Component {
     update(deltaTime: number) {
         
         if (this._state === RoleState.Die) return;
-
+        //只有游戏结束才能执行后续操作
+        if(GameInfo.Instance.getIsGameOver()) return;
+        
         if (!this.currentTarget) {
             this._handleMovement(deltaTime);
+            
             this._detectEnemies();
         } else {
             this._handleAttack(deltaTime);

+ 1 - 4
assets/Script/Game/MyApp/SelectTroopsBottom.ts

@@ -1,8 +1,5 @@
-import { _decorator, Button, Component, director, find, Node, resources, Sprite, SpriteFrame } from 'cc';
+import { _decorator, Button, Component, director, Node,  Sprite, SpriteFrame } from 'cc';
 import { GameInfo } from '../../GameInfo';
-import { UIMgr } from '../../Frames/UIManager';
-import { GameMgr } from '../GameFrameWork/GameMgr';
-import { BattleSceneTop } from '../UI/BattleSceneTop';
 const { ccclass, property } = _decorator;
 
 @ccclass('SelectTroopsBottom')

+ 4 - 4
assets/Script/Game/UI/BattleSceneLeft.ts

@@ -16,7 +16,7 @@ export class BattleSceneLeft extends ModulerBase {
         this.editBox = this.getComponentInChildren(EditBox);
         this._setEdit();
         
-        this._curLv(GameInfo.Instance.getCurlv());
+        this._curLv(Number(GameInfo.Instance.getCurlv()));
         this.onBtnClick("_btnLevel", this._btnLevel);
         if(GameInfo.Instance.getOverWin() && GameInfo.Instance.getGameOverReward().size != 0){
             this._curLv(GameInfo.Instance.getGameOverReward().get("CurLv"));
@@ -36,12 +36,12 @@ export class BattleSceneLeft extends ModulerBase {
 
     //保存名字
     private _onEdit(editbox: EditBox){
-        localDt.savePlayerName(editbox.string);
+        localDt.saveData("PlayerName",editbox.string);
     }
 
     private _setEdit(){
-        if(localDt.getPlayerName()){
-            this.editBox.string = localDt.getPlayerName();
+        if(localDt.getData("PlayerName")){
+            this.editBox.string = String(localDt.getData("PlayerName"));
         }
     }
 }

+ 1 - 1
assets/Script/Game/UI/BattleSceneTop.ts

@@ -14,7 +14,7 @@ export class BattleSceneTop extends ModulerBase {
     protected onStart() {
         this.onBtnClick("_btnReturn", this._btnReturn);
         //this._gold(GameInfo.Instance.getGold());
-        this._gold(localDt.getGold());
+        this._gold(Number(localDt.getData("Gold")));
         this._diamond(GameInfo.Instance.getDiamond());
         this.battleMode("战斗模式");
         messageMgr.addEvent("reduceGold", this._gold, this);

+ 3 - 4
assets/Script/Game/UI/PopupUI.ts

@@ -5,7 +5,6 @@ import { PopupUIDataConfig } from '../MyApp/GameScene/Data/PopupUIDataConfig';
 import { UIMgr } from '../../Frames/UIManager';
 import { GameInfo } from '../../GameInfo';
 import { Tip } from './Tip';
-import { messageMgr } from '../../Frames/MessageMgr';
 import { GameMgr } from '../GameFrameWork/GameMgr';
 import { BattleSceneTop } from './BattleSceneTop';
 import { localDt } from '../../Frames/LocalDt';
@@ -79,7 +78,7 @@ export class PopupUI extends UIBase {
         const resourceMap = {
             "Gold": {
                 //getAmount: GameInfo.Instance.getGold(),
-                getAmount: localDt.getGold(),
+                getAmount: localDt.getData("Gold"),
                 message: "金币不足!",
             },
             "Diamond": {
@@ -93,7 +92,7 @@ export class PopupUI extends UIBase {
         const consume: number = Number(this._consume);
         //总共
         //const totalGold: number = GameInfo.Instance.getGold();
-        const totalGold: number = localDt.getGold();
+        const totalGold: number = Number(localDt.getData("Gold"));
         if (resource && Number(this._consume) > resource.getAmount) {
             const tip: Node = instantiate(resMgr.getPrefab("Tip"));
             tip.getComponent(Tip).setContent(resource.message);
@@ -103,7 +102,7 @@ export class PopupUI extends UIBase {
         GameMgr.Instance.getModuler(BattleSceneTop)._gold((totalGold - consume));
         //messageMgr.dispatch("reduceGold", (totalGold - consume));
         //GameInfo.Instance.setGold((totalGold - consume));
-        localDt.saveGold(Number(totalGold - consume));
+        localDt.saveData("Gold", Number(totalGold - consume));
         (PopupUIDataConfig.Instance.getFunction())();
         UIMgr.closeUI("PopupUI", true);
         PopupUIDataConfig.Instance.clearDt();

+ 1 - 1
assets/Script/Game/UI/SelectTroops.ts

@@ -6,7 +6,7 @@ const { ccclass, property } = _decorator;
 @ccclass('SelectTroops')
 export class SelectTroops extends ModulerBase {
     protected onStart() {
-        this._setLvNumber(GameInfo.Instance.getCurlv());
+        this._setLvNumber(Number(GameInfo.Instance.getCurlv()));
         this._setOreGrade(GameInfo.Instance.getOreGrade());
         this._setOreSpeed(GameInfo.Instance.getOreSpeed());
     }

+ 2 - 1
assets/Script/Game/UI/Start.ts

@@ -1,6 +1,7 @@
 import { _decorator } from 'cc';
 import { UIBase } from '../GameFrameWork/UIBase';
 import { UIMgr } from '../../Frames/UIManager';
+import { localDt } from '../../Frames/LocalDt';
 const { ccclass, property } = _decorator;
 
 @ccclass('Start')
@@ -21,7 +22,7 @@ export class Start extends UIBase {
 
     //清除本地数据
     private _btnClearDt(){
-        localStorage.clear();
+        localDt.clearAll();
     }
 }
 

+ 4 - 4
assets/Script/GameInfo.ts

@@ -60,8 +60,8 @@ export class GameInfo {
     }
 
     //关卡
-    getCurlv(): number { return localDt.getLvDt() };
-    setCurLv(lv: number) { localDt.saveLvDt(lv) };
+    getCurlv(): number { return Number(localDt.getData("curLv")) };
+    setCurLv(lv: number) { localDt.saveData("curLv",lv) };
 
     //获胜场数
     getWin(): number { return this._winNumber };
@@ -76,8 +76,8 @@ export class GameInfo {
     setGold(gold: number) { this._goldAmount = gold };
 
     //钻石数量
-    getDiamond(): number { return localDt.getDiamond() };
-    setDiamond(diamond: number) { localDt.saveDiamond(diamond) };
+    getDiamond(): number { return Number(localDt.getData("Diamond")) };
+    setDiamond(diamond: number) { localDt.saveData("Diamond",diamond) };
 
     //玩家账号等级
     getGrade(): number { return this._grade };