Browse Source

fix: resolve all TypeScript compilation errors

master
npmrun 3 weeks ago
parent
commit
9ea7495b63
  1. 2
      src/Game/Game.ts
  2. 3
      src/Game/Stage.ts
  3. 3
      src/Game/index.ts
  4. 2
      src/Game/type.ts
  5. 8
      src/components/Button.ts
  6. 2
      src/core/AssetManager.ts
  7. 9
      src/init.ts
  8. 8
      src/scene/BaseScene.ts
  9. 12
      src/scene/SceneManager.ts
  10. 4
      src/scene/types.ts
  11. 12
      src/stages/_global/page_0global.ts
  12. 17
      src/stages/page_init.ts
  13. 2
      src/stages/welcome/page_welcome.ts
  14. 5
      src/stages/welcome2/page_welcome2.ts
  15. 4
      src/util/index.ts
  16. 4
      src/utils/Sound.ts

2
src/Game/Game.ts

@ -6,7 +6,7 @@ import {
Loader,
} from "pixi.js";
import detectOrient from "./detectOrient";
import { EDirection } from "@/enmu";
import { EDirection } from "@/enums";
import { initDevtools } from '@pixi/devtools';
export default class Game {

3
src/Game/Stage.ts

@ -1,7 +1,6 @@
import { EP } from "@/enmu";
import { EP } from "@/enums";
import { Container } from "pixi.js";
import Game from "./Game";
import { windows } from ".";
type TStage = {
type: EP,

3
src/Game/index.ts

@ -1,8 +1,7 @@
import Game from "./Game";
import Stage from "./Stage";
import { Container, Ticker } from "pixi.js";
import * as PIXI from "pixi.js";
import { EP } from "@/enmu";
import { EP } from "@/enums";
const gameManager = Game.getInstance();
const stageManager = Stage.getInstance();

2
src/Game/type.ts

@ -1,4 +1,4 @@
import { EP } from "@/enmu";
import { EP } from "@/enums";
import { IWindow } from ".";
import { Container, Ticker } from "pixi.js";

8
src/components/Button.ts

@ -22,7 +22,7 @@ export interface ButtonOptions {
export class Button {
private config: ButtonOptions;
private _container: Container;
private textObj: Text;
textObj: Text;
private bgRect?: Graphics;
private bgNine?: NineSliceSprite;
private padding: { x: number; y: number };
@ -62,7 +62,11 @@ export class Button {
this.updateView();
}
get container(): Container {
get _comp(): Container {
return this._container;
}
getView(): Container {
return this._container;
}

2
src/core/AssetManager.ts

@ -25,7 +25,7 @@ class AssetManager {
this.referenceCounts.set(name, count);
logger.debug(`AssetManager: reuse bundle "${name}", refCount = ${count}`);
onProgress?.(1);
return Assets.getBundle(name);
return Assets.loadBundle(name);
}
// 首次加载

9
src/init.ts

@ -25,7 +25,6 @@ export async function initApp(): Promise<void> {
// 文件名匹配提取场景名称
const match = path.match(/page_(.*?)\.ts$/);
if (!match) continue;
const sceneName = match[1];
const sceneClass = (mod as { default: Constructor<BaseScene> }).default;
const scene = new sceneClass();
@ -50,13 +49,13 @@ export async function initApp(): Promise<void> {
// 更新常驻场景
for (const scene of sceneManager.getAllScenes()) {
if (scene.type === SceneType.Resident && scene.stage.visible) {
scene.update?.(dt, ticker);
scene.update?.(dt, scene.name, ticker);
}
}
// 更新当前场景
if (current) {
current.update?.(dt, ticker);
current.update?.(dt, current.name, ticker);
}
game.render();
@ -64,12 +63,12 @@ export async function initApp(): Promise<void> {
// lateUpdate
for (const scene of sceneManager.getAllScenes()) {
if (scene.type === SceneType.Resident && scene.stage.visible && scene.lateUpdate) {
scene.lateUpdate(dt, ticker);
scene.lateUpdate(dt, scene.name, ticker);
}
}
if (current?.lateUpdate) {
current.lateUpdate(dt, ticker);
current.lateUpdate(dt, current.name, ticker);
}
});

8
src/scene/BaseScene.ts

@ -1,6 +1,6 @@
import { Container, Ticker } from "pixi.js";
import { SceneType } from "@/enums/SceneType";
import type { IBaseScene, SceneLifeCycle } from "./types";
import type { IBaseScene } from "./types";
export abstract class BaseScene implements IBaseScene {
abstract stage: Container;
@ -16,7 +16,7 @@ export abstract class BaseScene implements IBaseScene {
}
// 用于注入场景切换方法
changeScene(name: string, options?: { isHolderLast?: boolean }): void {
changeScene(_name: string, _options?: { isHolderLast?: boolean }): void {
// 由 SceneManager 注入实现
throw new Error("changeScene not injected by SceneManager");
}
@ -27,8 +27,8 @@ export abstract class BaseScene implements IBaseScene {
layout(): void | Promise<void> {}
onLoad(): void | Promise<void> {}
onUnLoad(): void | Promise<void> {}
update(dt: number, ticker: Ticker): void {}
lateUpdate(dt: number, ticker: Ticker): void {}
update(_dt: number, _name: string, _ticker: Ticker): void {}
lateUpdate(_dt: number, _name: string, _ticker: Ticker): void {}
}
export default BaseScene;

12
src/scene/SceneManager.ts

@ -1,10 +1,16 @@
import { Container } from "pixi.js";
import Game from "@/core/Game";
import { logger } from "@/core/Logger";
import { assetManager } from "@/core/AssetManager";
import { SceneType } from "@/enums/SceneType";
import { BaseScene } from "./BaseScene";
import type { SceneConfig, IBaseScene } from "./types";
import type { IBaseScene } from "./types";
// Extend the Container interface to allow setting and accessing _isHolderLast
declare module 'pixi.js' {
interface Container {
_isHolderLast?: boolean;
}
}
declare global {
interface Container {
@ -217,7 +223,7 @@ class SceneManager {
type = type;
}
const scene = new DynamicScene();
const scene = new DynamicScene(name);
this.registerScene(scene);
return container;
}

4
src/scene/types.ts

@ -19,9 +19,9 @@ export interface SceneLifeCycle {
/** 场景即将卸载 */
onUnLoad?(): void | Promise<void>;
/** 每帧更新 */
update?(dt: number, ticker: Ticker): void;
update?(dt: number, name: string, ticker: Ticker): void;
/** 更新后处理 */
lateUpdate?(dt: number, ticker: Ticker): void;
lateUpdate?(dt: number, name: string, ticker: Ticker): void;
}
export interface IBaseScene extends SceneLifeCycle {

12
src/stages/_global/page_0global.ts

@ -1,10 +1,9 @@
import { Button } from "@/components/Button";
import { EP } from "@/enmu";
import { EP } from "@/enums";
import { defineWindow } from "@/Game";
import { loadAsset } from "@/Game/Assets";
import Position from "@/Game/Position";
import { PWindow } from "@/Game/type";
import { Assets, Container } from "pixi.js";
import { Assets } from "pixi.js";
export default defineWindow(
class extends PWindow {
@ -24,9 +23,12 @@ export default defineWindow(
text: "全局",
bg: await Assets.load('btn-bgaa'),
pressBg: await Assets.load("btn-bg-pressaa"),
position: () => Position.get("center", "center", { y: 100, x: 0 })
position: () => Position.get("center", "center", { y: 100, x: 0 }),
onClick: () => {
console.log("Button clicked");
}
})
this.stage.addChild(this.btn._comp)
this.stage.addChild(this.btn.getView())
}
onLoad() {
console.log("global page loaded");

17
src/stages/page_init.ts

@ -1,10 +1,10 @@
import { Button } from "@/components/Button";
import { gameManager, defineWindow, stageManager } from "@/Game";
import { defineWindow } from "@/Game";
import Position from "@/Game/Position";
import Sound from "@/Game/Sound";
import { Container, Sprite, Text, NineSlicePlane, Texture, AnimatedSprite, Rectangle, Assets, AssetsBundle, NineSliceSprite, Ticker } from "pixi.js";
import { Container, Text, NineSliceSprite, AnimatedSprite, Rectangle, Ticker, Texture } from "pixi.js";
import { PWindow } from "@/Game/type";
import { loadAsset, unLoadAsset } from "@/Game/Assets";
import { loadAsset } from "@/Game/Assets";
// import { Button } from '@pixi/ui';
export default defineWindow(
@ -18,9 +18,12 @@ export default defineWindow(
const btn = new Button({
text: "加载中",
position: () => Position.get("center", "center"),
onClick: () => {
console.log("Loading button clicked");
}
});
btn._comp.zIndex = 111111
this.stage.addChild(btn._comp);
this.stage.addChild(btn.getView());
this.assets = await loadAsset("load-screen", (progress: number) => {
console.log(progress);
btn.textObj.text = "进度:" + progress
@ -65,13 +68,13 @@ export default defineWindow(
bg: this.assets["btn-bg"],
pressBg: this.assets["btn-bg-press"],
position: () => Position.get("center", "center", { y: 200, x: 0 }),
click: () => {
onClick: () => {
this.changeStage("welcome", { isHolderLast: false })
// this.pixie.gotoAndPlay(0);
// this.startBtn.textObj.text = "1111111111111111111111111111111111111"
}
})
allChild.push(this.startBtn._comp)
allChild.push(this.startBtn.getView())
// console.log(button);
// this.startBtn = Button({
@ -137,7 +140,7 @@ export default defineWindow(
console.log("onUnLoad loading");
}
update(dt: number, name: string, ticker: Ticker) {
update(_dt: number, _name: string, ticker: Ticker) {
if (this.pixie) {
this.pixie.update(ticker)
}

2
src/stages/welcome/page_welcome.ts

@ -21,7 +21,7 @@ export default class WelcomeScene extends BaseScene {
position: () => position.center(),
});
this.stage.addChild(btn.container);
this.stage.addChild(btn.getView());
}
onLoad(): void {

5
src/stages/welcome2/page_welcome2.ts

@ -1,6 +1,5 @@
import { EP } from "@/enmu";
import { stageManager, defineWindow, GG } from "@/Game";
import { Graphics, Container } from "pixi.js";
import { defineWindow } from "@/Game";
import { Graphics } from "pixi.js";
import { PWindow } from "@/Game/type";
export default defineWindow("welcome2", class extends PWindow {

4
src/util/index.ts

@ -6,7 +6,7 @@ export function addTextureSprite(texture: Texture, cb?: (sprite: Sprite) => void
avatar.on("click", () => {
cb && cb(avatar);
});
avatar.buttonMode = true;
avatar.cursor = "pointer";
avatar.scale.set(0.5, 0.5);
return avatar;
}
@ -18,7 +18,7 @@ export function addSprite(cb: (sprite: Sprite) => void) {
avatar.on("click", () => {
cb && cb(avatar);
});
avatar.buttonMode = true;
avatar.cursor = "pointer";
avatar.scale.set(0.5, 0.5);
return avatar;
}

4
src/utils/Sound.ts

@ -6,7 +6,7 @@ class SoundManager {
private muted: boolean = false;
constructor() {
sound.volume = this.volume;
sound.volumeAll = this.volume;
}
add(name: string, url: string, options?: { singleInstance?: boolean; autoPlay?: boolean }): void {
@ -43,7 +43,7 @@ class SoundManager {
setVolume(volume: number): void {
this.volume = Math.max(0, Math.min(1, volume));
sound.volume = this.volume;
sound.volumeAll = this.volume;
}
getVolume(): number {

Loading…
Cancel
Save