From 4b85a314c411306908ba2dc00b74fdfeccb9a662 Mon Sep 17 00:00:00 2001 From: Mal Date: Sun, 8 Dec 2024 16:53:56 +0100 Subject: [PATCH] Snow fullscreen effect implemented --- js/Game.js | 8 +++- js/Level.js | 13 ++++- js/effects/FullscreenEffect.js | 22 +++++++++ js/effects/FullscreenEffectFactory.js | 27 +++++++++++ js/effects/SnowEffect.js | 31 ++++++++++++ js/effects/snow.png | Bin 0 -> 85129 bytes tilorswift/js/Tilorswift.js | 45 ++++++++++++++++++ tilorswift/js/dialog/Dialog.js | 13 +++++ tilorswift/js/dialog/DialogEffects.js | 45 ++++++++++++++++++ tilorswift/js/dialog/elements/Checkbox.js | 29 +++++++++++ .../events/TilorswiftEffectsUpdatedEvent.js | 9 ++++ tilorswift/js/events/TilorswiftEvent.js | 1 + .../TilorswiftMenuEffectsClickedEvent.js | 9 ++++ 13 files changed, 250 insertions(+), 2 deletions(-) create mode 100644 js/effects/FullscreenEffect.js create mode 100644 js/effects/FullscreenEffectFactory.js create mode 100644 js/effects/SnowEffect.js create mode 100644 js/effects/snow.png create mode 100644 tilorswift/js/dialog/DialogEffects.js create mode 100644 tilorswift/js/dialog/elements/Checkbox.js create mode 100644 tilorswift/js/events/TilorswiftEffectsUpdatedEvent.js create mode 100644 tilorswift/js/events/TilorswiftMenuEffectsClickedEvent.js diff --git a/js/Game.js b/js/Game.js index b82befa..bb58bd2 100644 --- a/js/Game.js +++ b/js/Game.js @@ -71,7 +71,13 @@ export class Game this.architecture.draw(this.context, this.camera); this.mrCroc.draw(this.context, this.camera); this.gisela.draw(this.context, this.camera); - this.userInterface.draw(this.context); + + for (const effect of this.level.fullscreenEffects) { + effect.update(timestamp); + effect.render(this.context); + } + + this.userInterface.draw(this.context); this.lastRendered = timestamp; } diff --git a/js/Level.js b/js/Level.js index 80c4e81..23d4ecd 100644 --- a/js/Level.js +++ b/js/Level.js @@ -1,5 +1,6 @@ import FileLoader from "./FileLoader.js"; import Terrain from "../tilorswift/js/Terrain.js"; +import {FullscreenEffectFactory} from "./effects/FullscreenEffectFactory.js"; export default class Level { @@ -8,6 +9,7 @@ export default class Level constructor(terrain) { this.terrain = terrain; + this.fullscreenEffects = []; this.gravity = 2.0; } @@ -83,7 +85,6 @@ export default class Level const json = JSON.parse(data); const level = new Level(Terrain.createFromJson(json)); level.setGravity(json.gravity / Level.FACTOR_GRAVITY); - callback(level); } loader.loadContent(); @@ -97,6 +98,16 @@ export default class Level const level = new Level(terrain); level.setGravity(data.gravity / Level.FACTOR_GRAVITY); + if (data.hasOwnProperty('effects')) { + const effectFactory = new FullscreenEffectFactory(); + + for (const effect of data.effects) { + level.fullscreenEffects.push( + effectFactory.getEffect(effect) + ); + } + } + return level; } } diff --git a/js/effects/FullscreenEffect.js b/js/effects/FullscreenEffect.js new file mode 100644 index 0000000..66ab38a --- /dev/null +++ b/js/effects/FullscreenEffect.js @@ -0,0 +1,22 @@ +export class FullscreenEffect +{ + static NAME = ''; + + constructor(canvas) + { + this.canvas = canvas; + } + + update(timestamp) + { + } + + render(context) + { + } + + getName() + { + return this.constructor.NAME; + } +} diff --git a/js/effects/FullscreenEffectFactory.js b/js/effects/FullscreenEffectFactory.js new file mode 100644 index 0000000..a4f8fc9 --- /dev/null +++ b/js/effects/FullscreenEffectFactory.js @@ -0,0 +1,27 @@ +import {SnowEffect} from "./SnowEffect.js"; + +export class FullscreenEffectFactory +{ + static EFFECTS = { + [SnowEffect.NAME]: SnowEffect, + } + + getEffect(name) + { + return new FullscreenEffectFactory.EFFECTS[name](); + } + + static getNames() + { + const names = []; + + for (const name in FullscreenEffectFactory.EFFECTS) { + console.log(name); + names.push(name); + } + + console.log(names); + + return names; + } +} diff --git a/js/effects/SnowEffect.js b/js/effects/SnowEffect.js new file mode 100644 index 0000000..2011fa2 --- /dev/null +++ b/js/effects/SnowEffect.js @@ -0,0 +1,31 @@ +import {FullscreenEffect} from "./FullscreenEffect.js"; + +export class SnowEffect extends FullscreenEffect +{ + static NAME = 'snow'; + + constructor() + { + super(); + this.image = new Image(); + this.image.src = '/js/effects/snow.png'; + this.offset = 0; + } + + update(timestamp) + { + super.update(timestamp); + this.offset = timestamp % 512; + } + + render(context) + { + super.render(context); + + for (let y = -1; y < Math.ceil(context.canvas.height / 512); y++) { + for (let x = -1; x < Math.ceil(context.canvas.width / 512); x++) { + context.drawImage(this.image, this.offset + 512 * x, this.offset + 512 * y); + } + } + } +} diff --git a/js/effects/snow.png b/js/effects/snow.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf8d41b138a53f2a131d40ca3582df784e78252 GIT binary patch literal 85129 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®mTt`D|483{AE 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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 tW_Re`KFI@H?R0k}SFO16@7I6E?`8W {return effect.getName()}), }; return JSON.stringify(data); @@ -105,6 +115,7 @@ export default class Tilorswift { const dialog = new LoadLevelDialog(); dialog.onLoad = (json) => { + console.log(json); this.tileset = new Tileset(JSON.parse(json).tileset); this.level = Level.createFromJson(json); this.loadLevel(); @@ -297,6 +308,25 @@ export default class Tilorswift } ); + window.addEventListener( + TilorswiftEvent.MENU_EFFECTS_CLICKED, + () => { + const effects = []; + + for (const effect of this.level.fullscreenEffects) { + effects.push(effect.getName()); + } + + new DialogEffects( + FullscreenEffectFactory.getNames(), + effects, + { + [SnowEffect.NAME]: 'Schnee', + } + ); + } + ); + window.addEventListener( TilorswiftEvent.ADD_ROWS_CLICKED, () => { @@ -318,6 +348,21 @@ export default class Tilorswift } ); + window.addEventListener( + TilorswiftEvent.EFFECTS_UPDATED, + (event) => { + this.level.fullscreenEffects = []; + + const effectFactory = new FullscreenEffectFactory(); + + for (const effectName of event.effectNames) { + this.level.fullscreenEffects.push( + effectFactory.getEffect(effectName) + ); + } + } + ); + window.addEventListener( TilorswiftEvent.ADD_ROWS, (event) => { diff --git a/tilorswift/js/dialog/Dialog.js b/tilorswift/js/dialog/Dialog.js index 14810d9..1f02aa5 100644 --- a/tilorswift/js/dialog/Dialog.js +++ b/tilorswift/js/dialog/Dialog.js @@ -1,6 +1,7 @@ import GraphicSet from "../../../js/GraphicSet.js"; import Setting from "../../../js/Setting.js"; import TilorswiftTilesetSelectedEvent from "../events/TilorswiftTilesetSelectedEvent.js"; +import {Checkbox} from "./elements/Checkbox.js"; export default class Dialog { @@ -66,6 +67,16 @@ export default class Dialog return htmlElementInput; } + createCheckbox(label, value, isChecked = false, onClick = () => {}) + { + const checkbox = new Checkbox(label, value, isChecked); + checkbox.onClick = onClick; + + this.inputAreaElement.appendChild(checkbox.htmlElement); + + return checkbox; + } + createTilesetSelector() { let htmlElement = document.createElement('div'); @@ -133,6 +144,8 @@ export default class Dialog return htmlElement; } + + createFileInput(types = []) { let input = document.createElement('input'); diff --git a/tilorswift/js/dialog/DialogEffects.js b/tilorswift/js/dialog/DialogEffects.js new file mode 100644 index 0000000..960d1af --- /dev/null +++ b/tilorswift/js/dialog/DialogEffects.js @@ -0,0 +1,45 @@ +import Dialog from "./Dialog.js"; +import TilorswiftEffectsUpdatedEvent from "../events/TilorswiftEffectsUpdatedEvent.js"; + +export default class DialogEffects extends Dialog +{ + constructor(effects, checked, translations) + { + super(); + this.setMessage('Effekte'); + this.effects = []; + + for (const effect of effects) { + const checkbox = this.createCheckbox( + translations[effect], + effect, + checked.indexOf(effect) !== -1, + () => { + console.log(checkbox.name, 'is', checkbox.isChecked()); + } + ); + + this.effects.push(checkbox); + this.inputAreaElement.appendChild(checkbox.htmlElement); + } + + this.createButton('Abbrechen'); + this.buttonOk = this.createButton('OK'); + this.buttonOk.addEventListener( + 'click', + () => { + const effectNames = []; + + for (const effect of this.effects) { + if (effect.isChecked()) { + effectNames.push(effect.name); + } + } + + window.dispatchEvent( + new TilorswiftEffectsUpdatedEvent(effectNames) + ); + } + ) + } +} diff --git a/tilorswift/js/dialog/elements/Checkbox.js b/tilorswift/js/dialog/elements/Checkbox.js new file mode 100644 index 0000000..e7a4d63 --- /dev/null +++ b/tilorswift/js/dialog/elements/Checkbox.js @@ -0,0 +1,29 @@ +export class Checkbox +{ + constructor(label, name, isChecked = false) + { + this.name = name; + + this.htmlElement = document.createElement('div'); + + this.onClick = () => {}; + + this.checkbox = document.createElement('input'); + this.checkbox.type = 'checkbox'; + this.checkbox.checked = isChecked; + this.checkbox.onclick = () => { + this.onClick(); + } + + this.htmlLabel = document.createElement('label'); + this.htmlLabel.innerText = label; + + this.htmlElement.appendChild(this.checkbox); + this.htmlElement.appendChild(this.htmlLabel); + } + + isChecked() + { + return this.checkbox.checked; + } +} diff --git a/tilorswift/js/events/TilorswiftEffectsUpdatedEvent.js b/tilorswift/js/events/TilorswiftEffectsUpdatedEvent.js new file mode 100644 index 0000000..e71db56 --- /dev/null +++ b/tilorswift/js/events/TilorswiftEffectsUpdatedEvent.js @@ -0,0 +1,9 @@ +import TilorswiftEvent from "./TilorswiftEvent.js"; + +export default class TilorswiftEffectsUpdatedEvent extends Event +{ + constructor(effectNames) { + super(TilorswiftEvent.EFFECTS_UPDATED); + this.effectNames = effectNames; + } +} diff --git a/tilorswift/js/events/TilorswiftEvent.js b/tilorswift/js/events/TilorswiftEvent.js index 791d092..523d4f6 100644 --- a/tilorswift/js/events/TilorswiftEvent.js +++ b/tilorswift/js/events/TilorswiftEvent.js @@ -17,6 +17,7 @@ const TilorswiftEvent = { TILESET_SELECTED: 'tilesetSelected', MENU_GRAVITY_CLICKED: 'menuGravityClicked', GRAVITY_UPDATED: 'gravityUpdated', + MENU_EFFECTS_CLICKED: 'menuEffectsClicked', }; export default TilorswiftEvent; diff --git a/tilorswift/js/events/TilorswiftMenuEffectsClickedEvent.js b/tilorswift/js/events/TilorswiftMenuEffectsClickedEvent.js new file mode 100644 index 0000000..220a2e0 --- /dev/null +++ b/tilorswift/js/events/TilorswiftMenuEffectsClickedEvent.js @@ -0,0 +1,9 @@ +import TilorswiftEvent from "./TilorswiftEvent.js"; + +export default class TilorswiftMenuEffectsClickedEvent extends Event +{ + constructor() + { + super(TilorswiftEvent.MENU_EFFECTS_CLICKED); + } +}