From b7a38ce3da22f15a59ff1e68ebc2b5012999e5b7 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Sat, 26 Apr 2025 23:29:17 +0700 Subject: [PATCH] fix(pages): load levels --- {public/assets => assets}/levels/level1.json | 0 {public/assets => assets}/levels/level2.json | 0 {public/assets => assets}/levels/level3.json | 0 src/scenes/LevelScene.js | 1 + src/scenes/MainScene.js | 7 ++++--- src/scenes/MenuScene.js | 3 +++ src/utils/assetUtils.js | 12 ++++++++++++ vite/config.dev.mjs | 2 +- vite/config.prod.mjs | 6 +++--- 9 files changed, 24 insertions(+), 7 deletions(-) rename {public/assets => assets}/levels/level1.json (100%) rename {public/assets => assets}/levels/level2.json (100%) rename {public/assets => assets}/levels/level3.json (100%) create mode 100644 src/utils/assetUtils.js diff --git a/public/assets/levels/level1.json b/assets/levels/level1.json similarity index 100% rename from public/assets/levels/level1.json rename to assets/levels/level1.json diff --git a/public/assets/levels/level2.json b/assets/levels/level2.json similarity index 100% rename from public/assets/levels/level2.json rename to assets/levels/level2.json diff --git a/public/assets/levels/level3.json b/assets/levels/level3.json similarity index 100% rename from public/assets/levels/level3.json rename to assets/levels/level3.json diff --git a/src/scenes/LevelScene.js b/src/scenes/LevelScene.js index 4cb6644..1507be5 100644 --- a/src/scenes/LevelScene.js +++ b/src/scenes/LevelScene.js @@ -1,5 +1,6 @@ import Phaser from 'phaser'; import game from '../main.js'; +import { getAssetPath } from '../utils/assetUtils.js'; class LevelScene extends Phaser.Scene { constructor() { diff --git a/src/scenes/MainScene.js b/src/scenes/MainScene.js index c231c9d..c5a8c62 100644 --- a/src/scenes/MainScene.js +++ b/src/scenes/MainScene.js @@ -1,5 +1,6 @@ import Phaser from 'phaser'; import game from '../main.js'; +import { getAssetPath } from '../utils/assetUtils.js'; class MainScene extends Phaser.Scene { constructor() { @@ -33,9 +34,9 @@ class MainScene extends Phaser.Scene { preload() { // Load level data - this.load.json('level1', 'public/assets/levels/level1.json'); - this.load.json('level2', 'public/assets/levels/level2.json'); - this.load.json('level3', 'public/assets/levels/level3.json'); + this.load.json('level1', getAssetPath('assets/levels/level1.json')); + this.load.json('level2', getAssetPath('assets/levels/level2.json')); + this.load.json('level3', getAssetPath('assets/levels/level3.json')); } create() { diff --git a/src/scenes/MenuScene.js b/src/scenes/MenuScene.js index a646586..7df67df 100644 --- a/src/scenes/MenuScene.js +++ b/src/scenes/MenuScene.js @@ -1,3 +1,6 @@ +import Phaser from 'phaser'; +import { getAssetPath } from '../utils/assetUtils.js'; + class MenuScene extends Phaser.Scene { constructor() { super({ key: 'MenuScene' }); diff --git a/src/utils/assetUtils.js b/src/utils/assetUtils.js new file mode 100644 index 0000000..067a6d9 --- /dev/null +++ b/src/utils/assetUtils.js @@ -0,0 +1,12 @@ +/** + * Utility function to get the correct asset path based on the environment + * This helps ensure assets load correctly both locally and on GitHub Pages + * + * @param {string} path - The relative path to the asset + * @returns {string} The correct path to use for loading the asset + */ +export function getAssetPath(path) { + // The path should be used as-is since Vite handles the base path + // during build based on the config.base setting + return path; +} diff --git a/vite/config.dev.mjs b/vite/config.dev.mjs index 71e0cc8..34a5b6c 100644 --- a/vite/config.dev.mjs +++ b/vite/config.dev.mjs @@ -1,7 +1,7 @@ import { defineConfig } from 'vite'; export default defineConfig({ - base: './', + base: '/', build: { rollupOptions: { output: { diff --git a/vite/config.prod.mjs b/vite/config.prod.mjs index 5592cb4..7152b08 100644 --- a/vite/config.prod.mjs +++ b/vite/config.prod.mjs @@ -10,14 +10,14 @@ const phasermsg = () => { const line = "---------------------------------------------------------"; const msg = `❤️❤️❤️ Tell us about your game! - games@phaser.io ❤️❤️❤️`; process.stdout.write(`${line}\n${msg}\n${line}\n`); - + process.stdout.write(`✨ Done ✨\n`); } } -} +} export default defineConfig({ - base: './', + base: '/sokoban/', logLevel: 'warn', build: { rollupOptions: {