From 6684696f73474f0efc51a50c5b8ec42cc6b997fe Mon Sep 17 00:00:00 2001 From: Paolo Brasolin <paolo.brasolin@eurac.edu> Date: Thu, 14 Apr 2022 09:37:35 +0200 Subject: [PATCH] feat: #fe modernize asset handling --- frontend/src/js/assets.ts | 77 +++++++++++++++++++++++++++++ frontend/src/js/background_scene.ts | 25 +++++----- frontend/src/js/fight_scene.ts | 33 +++++++------ frontend/src/js/game_over_scene.ts | 3 +- frontend/src/js/welcome_scene.ts | 3 +- 5 files changed, 111 insertions(+), 30 deletions(-) create mode 100644 frontend/src/js/assets.ts diff --git a/frontend/src/js/assets.ts b/frontend/src/js/assets.ts new file mode 100644 index 0000000..f88c7e9 --- /dev/null +++ b/frontend/src/js/assets.ts @@ -0,0 +1,77 @@ +import loBeep from "url:/public/assets/audio/Cancel 1.mp3"; +import mdBeep from "url:/public/assets/audio/Text 1.mp3"; +import hiBeep from "url:/public/assets/audio/Confirm 1.mp3"; +import hitCritter from "url:/public/assets/audio/Hit damage 1.mp3"; +import hitPlayer from "url:/public/assets/audio/Boss hit 1.mp3"; +import gameOver from "url:/public/assets/audio/Bubble heavy 2.mp3"; + +export const SFX = { + LoBeep: loBeep as string, + MdBeep: mdBeep as string, + HiBeep: hiBeep as string, + HitCritter: hitCritter as string, + HitPlayer: hitPlayer as string, + GameOver: gameOver as string, +}; + +import buildup from "url:/public/assets/music/buildup.mp3"; +import loopOne from "url:/public/assets/music/loop.mp3"; +import loopTwo from "url:/public/assets/music/loopTwo.mp3"; +import loopThree from "url:/public/assets/music/loopThree.mp3"; +import failure from "url:/public/assets/music/loose.mp3"; + +export const MFX = { + Buildup: buildup as string, + LoopOne: loopOne as string, + LoopTwo: loopTwo as string, + LoopThree: loopThree as string, + Failure: failure as string, +}; + +import oetzi from "url:/public/assets/sprites/player/oezi.png"; +import deer from "url:/public/assets/sprites/player/deer.png"; +import boar from "url:/public/assets/sprites/player/boar.png"; +import wolf from "url:/public/assets/sprites/player/wolf.png"; +import bear from "url:/public/assets/sprites/player/bear.png"; +import spearStill from "url:/public/assets/sprites/player/spear.png"; +import spearWobble from "url:/public/assets/sprites/player/spearhit.png"; + +export const SPR = { + Oetzi: oetzi as string, + Deer: deer as string, + Boar: boar as string, + Wolf: wolf as string, + Bear: bear as string, + SpearStill: spearStill as string, + SpearWobble: spearWobble as string, +}; + +import l00 from "url:/public/assets/background_layers/Layer_0011_0.png"; +import l01 from "url:/public/assets/background_layers/Layer_0010_1.png"; +import l02 from "url:/public/assets/background_layers/Layer_0009_2.png"; +import l03 from "url:/public/assets/background_layers/Layer_0008_3.png"; +import l04 from "url:/public/assets/background_layers/Layer_0007_Lights.png"; +import l05 from "url:/public/assets/background_layers/Layer_0006_4.png"; +import l06 from "url:/public/assets/background_layers/Layer_0005_5.png"; +import l07 from "url:/public/assets/background_layers/Layer_0004_Lights.png"; +import l08 from "url:/public/assets/background_layers/Layer_0003_6.png"; +import l09 from "url:/public/assets/background_layers/Layer_0002_7.png"; +import l10 from "url:/public/assets/background_layers/Layer_0001_8.png"; +import l11 from "url:/public/assets/background_layers/Layer_0000_9.png"; + +export const BKG = { + L00: l00 as string, + L01: l01 as string, + L02: l02 as string, + L03: l03 as string, + L04: l04 as string, + L05: l05 as string, + L06: l06 as string, + L07: l07 as string, + L08: l08 as string, + L09: l09 as string, + L10: l10 as string, + L11: l11 as string, +}; + +export default { SFX, MFX, SPR, BKG }; diff --git a/frontend/src/js/background_scene.ts b/frontend/src/js/background_scene.ts index 1319081..3bd0597 100644 --- a/frontend/src/js/background_scene.ts +++ b/frontend/src/js/background_scene.ts @@ -1,19 +1,20 @@ import "phaser"; +import { BKG } from "./assets"; const LAYERS_HEIGHT = 793; const LAYERS = { - b00: "assets/background_layers/Layer_0011_0.png", - b01: "assets/background_layers/Layer_0010_1.png", - b02: "assets/background_layers/Layer_0009_2.png", - b03: "assets/background_layers/Layer_0008_3.png", - b04: "assets/background_layers/Layer_0007_Lights.png", - b05: "assets/background_layers/Layer_0006_4.png", - b06: "assets/background_layers/Layer_0005_5.png", - b07: "assets/background_layers/Layer_0004_Lights.png", - b08: "assets/background_layers/Layer_0003_6.png", - b09: "assets/background_layers/Layer_0002_7.png", - b10: "assets/background_layers/Layer_0001_8.png", - b11: "assets/background_layers/Layer_0000_9.png", + b00: BKG.L00, + b01: BKG.L01, + b02: BKG.L02, + b03: BKG.L03, + b04: BKG.L04, + b05: BKG.L05, + b06: BKG.L06, + b07: BKG.L07, + b08: BKG.L08, + b09: BKG.L09, + b10: BKG.L10, + b11: BKG.L11, }; // prettier-ignore diff --git a/frontend/src/js/fight_scene.ts b/frontend/src/js/fight_scene.ts index 344c358..2a67223 100644 --- a/frontend/src/js/fight_scene.ts +++ b/frontend/src/js/fight_scene.ts @@ -12,6 +12,7 @@ import Foe from "./foe"; import Typewriter from "./typewriter"; import HUD from "./hud"; import BackgroundScene from "./background_scene"; +import { SFX, MFX, SPR } from "./assets"; const DEVICE_KEY = "OETZI/DEVICE_ID"; @@ -64,46 +65,46 @@ export default class FightScene extends Phaser.Scene { } preloadSoundsEffects() { - this.load.audio("sfx_lo_beep", "assets/audio/Cancel 1.mp3"); - this.load.audio("sfx_md_beep", "assets/audio/Text 1.mp3"); - this.load.audio("sfx_hi_beep", "assets/audio/Confirm 1.mp3"); - this.load.audio("sfx_hit_critter", "assets/audio/Hit damage 1.mp3"); - this.load.audio("sfx_hit_player", "assets/audio/Boss hit 1.mp3"); - this.load.audio("sfx_game_over", "assets/audio/Bubble heavy 2.mp3"); + this.load.audio("sfx_lo_beep", SFX.LoBeep); + this.load.audio("sfx_md_beep", SFX.MdBeep); + this.load.audio("sfx_hi_beep", SFX.HiBeep); + this.load.audio("sfx_hit_critter", SFX.HitCritter); + this.load.audio("sfx_hit_player", SFX.HitPlayer); + this.load.audio("sfx_game_over", SFX.GameOver); } preloadMusicThemes() { - this.load.audio("bkg_main_1", "assets/music/loop.mp3"); - this.load.audio("bkg_main_2", "assets/music/loopTwo.mp3"); - this.load.audio("bkg_main_3", "assets/music/loopThree.mp3"); + this.load.audio("bkg_main_1", MFX.LoopOne); + this.load.audio("bkg_main_2", MFX.LoopTwo); + this.load.audio("bkg_main_3", MFX.LoopThree); } preloadSprites() { - this.load.spritesheet("oezi", "assets/sprites/player/oezi.png", { + this.load.spritesheet("oezi", SPR.Oetzi, { frameWidth: 27, frameHeight: 35, }); - this.load.spritesheet("deer", "assets/sprites/player/deer.png", { + this.load.spritesheet("deer", SPR.Deer, { frameWidth: 72, frameHeight: 52, }); - this.load.spritesheet("boar", "assets/sprites/player/boar.png", { + this.load.spritesheet("boar", SPR.Boar, { frameWidth: 52, frameHeight: 28, }); - this.load.spritesheet("wolf", "assets/sprites/player/wolf.png", { + this.load.spritesheet("wolf", SPR.Wolf, { frameWidth: 54, frameHeight: 35, }); - this.load.spritesheet("bear", "assets/sprites/player/bear.png", { + this.load.spritesheet("bear", SPR.Bear, { frameWidth: 60, frameHeight: 31, }); - this.load.spritesheet("spear", "assets/sprites/player/spear.png", { + this.load.spritesheet("spear", SPR.SpearStill, { frameWidth: 31, frameHeight: 7, }); - this.load.spritesheet("spearhit", "assets/sprites/player/spearhit.png", { + this.load.spritesheet("spearhit", SPR.SpearWobble, { frameWidth: 14, frameHeight: 33, }); diff --git a/frontend/src/js/game_over_scene.ts b/frontend/src/js/game_over_scene.ts index cfd7ca6..84210b7 100644 --- a/frontend/src/js/game_over_scene.ts +++ b/frontend/src/js/game_over_scene.ts @@ -1,6 +1,7 @@ import "phaser"; import BackgroundScene from "./background_scene"; import { formatTime, ICONS } from "./hud"; +import { MFX } from "./assets"; export default class GameOverScene extends Phaser.Scene { music!: Phaser.Sound.BaseSound; @@ -10,7 +11,7 @@ export default class GameOverScene extends Phaser.Scene { } preload() { - this.load.audio("bkg_failure", "assets/music/loose.mp3"); + this.load.audio("bkg_failure", MFX.Failure); } musicHardReplace( diff --git a/frontend/src/js/welcome_scene.ts b/frontend/src/js/welcome_scene.ts index 99316f8..fc84334 100644 --- a/frontend/src/js/welcome_scene.ts +++ b/frontend/src/js/welcome_scene.ts @@ -1,4 +1,5 @@ import "phaser"; +import { MFX } from "./assets"; export default class WelcomeScene extends Phaser.Scene { music!: Phaser.Sound.BaseSound; @@ -8,7 +9,7 @@ export default class WelcomeScene extends Phaser.Scene { } preload() { - this.load.audio("bkg_buildup", "assets/music/buildup.mp3"); + this.load.audio("bkg_buildup", MFX.Buildup); } musicHardReplace( -- GitLab