v0.6: Actor system (rigidbody) replaces pixel player
- New actors.rs: Rigidbody Actor with gravity, grid collision, powder displacement - Actor rendered as colored rectangle on pixel buffer (zoom-scaled) - WASM API: spawn_actor, move_actor, update_actor, actor_x/y - WASD/Arrow keys control actor, camera follows with soft lerp - displace_powders pushes sand/dirt out of actor area - Collision: stops at solids, walks through powders - Updated AGENTS.md with actor documentation
This commit is contained in:
@@ -182,7 +182,17 @@ Jedes Material bekommt deterministische Pixel-Variation basierend auf Grid-Koord
|
||||
|
||||
### Player-System (Phase 4 — in Arbeit)
|
||||
|
||||
Player-Material (7) existiert als grüner Pixel-Cluster. `move_player(dx, dy)`-API in `physics.rs` via WASM exportiert (`engine.movePlayer`). Aktueller Ansatz: Clear+Place (alle Player-Zellen löschen, an Zielposition neu setzen), all-or-nothing bei Kollision mit Solids. Gravitation: `dy=1` jede Frame. Horizontal-Input: Pfeiltasten separat. Kamera: folgt Player-Zentrum (Scan 200×200 Region um letzte Position, cached). Offen: Cluster-Form stabil halten (kreisrund), Sprung-Mechanik, Schadenssystem.
|
||||
**Aktueller Ansatz**: Rigidbody-Actor-System statt Pixel-Player.
|
||||
- `engine/src/actors.rs`: `Actor`-Struct (x, y, w, h, vx, vy, color)
|
||||
- Gravitation (500px/s²), Geschwindigkeits-Dämpfung (0.9×/Frame)
|
||||
- Grid-Kollision: `collides_at()` prüft Solids (nicht Powders), seitliches Stoppen + vertikales Snap an Oberflächen
|
||||
- `displace_powders()`: Verschiebt Sand/Erde aus dem Actor-Bereich in leere Nachbarzellen
|
||||
- WASM-API: `spawn_actor`, `move_actor`, `update_actor`, `actor_x/y`
|
||||
- Rendering: Actor als farbiges Rechteck über dem Pixel-Buffer (zoom-skaliert)
|
||||
- Input: WASD/Pfeiltasten, Kamera folgt Actor weich
|
||||
- Player-Material (7) existiert weiterhin, wird aktuell nicht genutzt
|
||||
|
||||
Offen: Mehrere Actors, Maus-Selektion, Pathfinding (A*), Task-System
|
||||
|
||||
## Build & Entwicklung
|
||||
|
||||
@@ -215,6 +225,7 @@ cd web && npm run build
|
||||
| Cell + Chunk + Grid DS | `engine/src/grid.rs` |
|
||||
| Material-Definitionen | `engine/src/material.rs` |
|
||||
| Physik: Kräfte, Sand, Fluide | `engine/src/physics.rs` |
|
||||
| Actor-System (Rigidbody) | `engine/src/actors.rs` |
|
||||
| RGBA-Buffer Export | `engine/src/render_buffer.rs` |
|
||||
| Rust-Abhängigkeiten | `engine/Cargo.toml` |
|
||||
| WebGL2 Renderer | `web/src/renderer.ts` |
|
||||
|
||||
Reference in New Issue
Block a user