feat(whopixels): update Phaser from 3.55.2 to 3.80.1

Migrate particle API from deprecated ParticleEmitterManager
(add.particles + createEmitter) to new Phaser 3.60+ API
(add.particles with direct emitter config). All 21 improvements
now complete.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-03-21 15:29:24 +01:00
parent c26a48e16a
commit 9dc5570ec0
3 changed files with 13 additions and 17 deletions

View file

@ -35,7 +35,7 @@
## Performance
- [x] **19. Object Pooling** — Partikel-Pool einmalig erstellt, Emitter wird wiederverwendet statt neu erstellt
- [ ] **20. Phaser-Version updaten** — Von 3.55.2 auf 3.80+ (Breaking Changes bei Particle-API, benötigt umfassende Tests)
- [x] **20. Phaser-Version updaten** — Von 3.55.2 auf 3.80.1, Particle-API auf neue `add.particles(x, y, key, config)` Syntax migriert
## Lokalisierung

View file

@ -10,7 +10,7 @@
<div id="game-container"></div>
<!-- Phaser Library -->
<script src="https://cdn.jsdelivr.net/npm/phaser@3.55.2/dist/phaser.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/phaser@3.80.1/dist/phaser.min.js"></script>
<!-- Game Data -->
<script src="data/npc_characters.js"></script>

View file

@ -21,9 +21,7 @@ class NPCManager {
this.npcDialog = null;
this.interactionPrompt = null;
// Partikel-Pool (wiederverwendbar)
/** @type {Phaser.GameObjects.Particles.ParticleEmitterManager|null} */
this._particlePool = null;
// Partikel-Emitter (wiederverwendbar)
/** @type {Phaser.GameObjects.Particles.ParticleEmitter|null} */
this._emitter = null;
}
@ -84,18 +82,16 @@ class NPCManager {
}
_initParticlePool() {
this._particlePool = this.scene.add.particles('particle');
if (this._particlePool.createEmitter) {
this._emitter = this._particlePool.createEmitter({
speed: { min: 50, max: 100 },
angle: { min: 0, max: 360 },
scale: { start: 0.5, end: 0 },
blendMode: 'ADD',
lifespan: GAME_CONFIG.ANIMATIONS.PARTICLE_LIFETIME,
gravityY: 0,
on: false, // Startet deaktiviert
});
}
// Phaser 3.60+ API: add.particles() gibt direkt einen ParticleEmitter zurück
this._emitter = this.scene.add.particles(0, 0, 'particle', {
speed: { min: 50, max: 100 },
angle: { min: 0, max: 360 },
scale: { start: 0.5, end: 0 },
blendMode: 'ADD',
lifespan: GAME_CONFIG.ANIMATIONS.PARTICLE_LIFETIME,
gravityY: 0,
emitting: false,
});
}
spawnNewNPC() {