miaoda-game-wave-phaser
v0.3.0
Published
Phaser Scene spawn director for miaoda-game-wave-core.
Downloads
457
Readme
miaoda-game-wave-phaser
Use this Phaser 4 Scene controller to drive WaveRunner or Director, resolve named spawn points to { x, y }, and emit spawn requests to your entity factory.
Install
pnpm add miaoda-game-wave-phaser miaoda-game-wave-corePhaser >=4 <5 is required.
Minimal controller
const waves = scene.waves.create()
.registerSpawnPoint('left', { x: 32, y: 240 })
.onSpawn((type, point) => {
const enemy = scene.enemies.create(point?.x ?? 0, point?.y ?? 0, type);
enemy.once('died', () => waves.reportKilled());
})
.setupWaves({
waves: [{ groups: [{ type: 'slime', count: 6, interval: 0.4, spawnPointId: 'left' }] }],
})
.start();Register WavePlugin as a Scene Plugin to use scene.waves.create(), or construct new WaveController(scene.events) directly. Phaser update milliseconds are converted to core seconds. Scene shutdown destroys plugin-owned controllers automatically.
Call reportKilled when tracked enemies die so cleared waves and maxAlive directors can progress. setTicking(false) pauses scheduling. One controller hosts one model; calling setupWaves or setupDirector replaces the previous setup.
Public API
WaveController provides setup, spawn-point registration, onSpawn, start, reportKilled, ticking control, and destroy. WavePlugin supplies Scene ownership. Instantiate and pool Phaser objects in your callback; the adapter only emits requests.
