|
v2 трек 7: физика тела — AABB против вокселей + гравитация
- physics/body.ts: SolidWorld (точечная выборка get), makeBody/stepBody (полунеявный Эйлер), collides (AABB по воксельным диапазонам, касание грани — не столкновение), ось-раздельное разрешение X→Z→Y с зажимом к граням вокселей, сабстепы против туннелирования - 10 юнит-тестов: падение на грань, покой, сход с уступа, стена, туннелирование (50 вокс/с при dt=0.1), угол, потолок, число гравитации - Демка: тело-манекен с walk-анимацией и поворотом по движению; мост bodySpawn/bodyStep/bodyInfo/bodyRemove (фиксированный dt — детерминизм) - Гейт physics.mjs 7 проверок: падение на землю, стена останавливает по грани, фаза ходьбы растёт, кадр меняется, манекен рисуется - Грабли в v2/CLAUDE.md: VoxelWorld(n) — высота чанка, не число чанков (set вне границ молча false); Vec3 readonly — физика на обычных кортежах; спавн тела проверять на пересечение AABB с миром 101 юнит-тест; гейты: render 13, turntable 5, anim 8, physics 7 — зелёные. Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| docs/plan.md |
|---|
| v2/CLAUDE.md |
|---|
| v2/apps/demo/src/main.ts |
|---|
| v2/apps/demo/tools/checks/physics.mjs 0 → 100644 |
|---|
| v2/packages/engine/src/index.ts |
|---|
| v2/packages/engine/src/physics/__tests__/body.test.ts 0 → 100644 |
|---|
| v2/packages/engine/src/physics/body.ts 0 → 100644 |
|---|