Added ReamMe.md
This commit is contained in:
parent
3d9d3537b5
commit
b92323a517
|
|
@ -0,0 +1,47 @@
|
|||
# Repository Overview
|
||||
|
||||
This repository contains a small Phaser‑based game that manages enemy spawning and level progression using JSON configuration files and a dedicated `LevelManager` class.
|
||||
|
||||
## Assets
|
||||
|
||||
### `assets/data/levels.json`
|
||||
Defines the parameters for each game level:
|
||||
|
||||
| Level | Spawn Interval (ms) | Enemy Types | Enemy Multiplier |
|
||||
|-------|---------------------|----------------------------|------------------|
|
||||
| 1 | 2000 | `grunt` | 1.0 |
|
||||
| 2 | 1800 | `grunt`, `brute` | 1.2 |
|
||||
| 3 | 1600 | `grunt`, `brute`, `tank` | 1.5 |
|
||||
|
||||
- **`spawnInterval`** – Time between enemy spawns (lower = faster).
|
||||
- **`enemyTypes`** – Array of unit keys that may appear on the level.
|
||||
- **`enemyMultiplier`** – Multiplier applied to enemy stats (e.g., health) to increase difficulty.
|
||||
|
||||
### `assets/data/units.json`
|
||||
Describes the base stats for each enemy type used in the game:
|
||||
|
||||
| Unit | Health | Speed | XP | Collision Damage | Width (px) | Height (px) |
|
||||
|-------|--------|-------|----|------------------|-----------|------------|
|
||||
| grunt | 30 | 80 | 10 | 15 | 96 | 96 |
|
||||
| brute | 80 | 60 | 25 | 30 | 96 | 96 |
|
||||
| tank | 150 | 40 | 50 | 45 | 128 | 128 |
|
||||
|
||||
These values are referenced when spawning enemies, calculating damage, and awarding experience points.
|
||||
|
||||
## Source Code
|
||||
|
||||
### `js/managers/LevelManager.js`
|
||||
A lightweight manager that handles level state and progression:
|
||||
|
||||
- **Constructor** receives the current Phaser scene and the parsed `levels.json` data.
|
||||
- Stores the current level (`currentLevel`) and its configuration (`currentConfig`).
|
||||
- **`startLevel(num)`** – Switches to a specific level, updating `currentLevel` and `currentConfig`.
|
||||
- **`levelUp()`** – Advances to the next level (if one exists), calls `startLevel`, and updates the spawn interval in the scene’s `spawnManager`.
|
||||
|
||||
This class isolates level‑related logic, making it easy to broadcast UI events or extend functionality later.
|
||||
|
||||
### `js/scenes/GameScene.js`
|
||||
The main gameplay scene (a subclass of `Phaser.Scene`). While the full implementation is omitted, the class skeleton includes the typical Phaser lifecycle methods:
|
||||
|
||||
- **`preload()`** – Load assets (sprites, JSON files, etc.).
|
||||
- **`create()`** – Set up the game world, instantiate managers (e
|
||||
Loading…
Reference in New Issue