xiongzhu před 2 roky
rodič
revize
729f9a9e5e

+ 29 - 45
assets/scripts/BackgroundAnimation.ts

@@ -1,56 +1,40 @@
-import { _decorator, Component, Node, resources, Sprite, SpriteFrame } from 'cc';
-const { ccclass, property } = _decorator;
+import { _decorator, Component, Node, resources, Sprite, SpriteFrame } from "cc"
+const { ccclass, property } = _decorator
 
-@ccclass('BackgroundAnimation')
+@ccclass("BackgroundAnimation")
 export class BackgroundAnimation extends Component {
-
-    
-    private frameIndex: number = 1;
-    private maxFrames: number = 54;
-    private frameRate: number = 12; // 每秒12帧
-    private deltaTime: number = 0;
-    private reverse: boolean = false;
-
-    start () {
-        this.updateSpriteFrame();
+    private frameIndex: number = 1
+    private maxFrames: number = 54
+    private frameRate: number = 12 // 每秒12帧
+    private deltaTime: number = 0
+    private bgFrames: any[] = []
+
+    start() {
+        for (let i = 0; i < 54; i++) {
+            resources.load(`bg/bg${i + 1}/spriteFrame`, SpriteFrame, (err, spriteFrame) => {
+                if (!err && spriteFrame) {
+                    this.bgFrames[i] = spriteFrame
+                } else {
+                    console.log(err)
+                }
+            })
+        }
     }
 
-    update (dt: number) {
-        this.deltaTime += dt;
+    update(dt: number) {
+        this.deltaTime += dt
         if (this.deltaTime >= 1 / this.frameRate) {
-            this.deltaTime = 0;
-            if(this.reverse)
-            {
-                this.frameIndex--;
-            }
-            else{
+            this.deltaTime = 0
 
-                this.frameIndex++;
-            }
+            this.frameIndex = (this.frameIndex + 1) % (this.maxFrames * 2)
 
-            if (this.frameIndex > this.maxFrames) {
-                this.reverse = true;
-                this.frameIndex--;
-            }
-            else if(this.frameIndex === 0 ){
-                this.reverse = false;
-                this.frameIndex++;
+            const frame =
+                this.bgFrames[
+                    this.frameIndex >= this.maxFrames ? this.maxFrames * 2 - this.frameIndex - 1 : this.frameIndex
+                ]
+            if (frame) {
+                this.node.getComponent(Sprite).spriteFrame = frame
             }
-
-            this.updateSpriteFrame();
         }
     }
-
-    private updateSpriteFrame() {
-        resources.load(`bg/bg${this.frameIndex}/spriteFrame`, SpriteFrame, (err, spriteFrame) => {
-            if (!err && spriteFrame) {
-                this.node.getComponent(Sprite).spriteFrame = spriteFrame;
-            }
-            else{
-                console.log(err);
-            }
-        });
-    }
 }
-
-

+ 2 - 2
assets/scripts/gameCtr.ts

@@ -200,9 +200,9 @@ export class GameCtr extends Component {
 
 
     start() {
-        this.startResetAnimation()
+        // this.startResetAnimation()
         // this.scheduleOnce(() => { this.accessTargetComponent() }, 0.1)
-        this.scheduleOnce(() => { this.init() }, 10)
+        this.scheduleOnce(() => { this.init() }, 1)
         this.processCtr.init(this)
         this.schedule(this.chackGameInfo, 5 * 60);
     }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
build/web-mobile/assets/main/index.js


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů