docs: синхронизировать описание ассетов с реальностью (PNG из src/assets + фолбэк)
Ревью отметило устаревшие тексты после перехода на загрузку PNG: - assets.ts: заголовок описывал «процедурно, без внешних файлов» — теперь PNG из src/assets/<ключ>.png с процедурным фолбэком. - HOWTO §8: убран совет «заменить тело drawX() на TextureLoader» (уже сделано); актуальный путь — положить PNG с нужным именем в src/assets/. - README/ARCHITECTURE/ASSET_BRIEF: статус «подключено», корректный механизм (рантайм- загрузка по пути, не импорт-бандлинг). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+11
-6
@@ -115,14 +115,19 @@
|
||||
|
||||
## 8. Кастомные ассеты (спрайты, текстуры, тема)
|
||||
|
||||
Графика (спрайты персонажей/врагов, пол, стены, двери, снаряд, эффекты, тень) рисуется
|
||||
процедурно в **`src/render/assets.ts`** (класс `Assets`, кэширует текстуры three.js).
|
||||
Графика грузится из PNG в **`src/assets/`** (класс `Assets` в `src/render/assets.ts`
|
||||
тянет `assets/<ключ>.png` через `THREE.TextureLoader`); если файла нет — рисуется
|
||||
процедурный фолбэк на canvas, и игра не ломается.
|
||||
|
||||
- **Свои PNG вместо процедурных:** замени тело нужного `drawX()` на загрузку картинки
|
||||
`new THREE.TextureLoader().load(url)` и верни её из соответствующего геттера — рендер
|
||||
берёт текстуры по ключам, больше ничего менять не нужно. Полный список нужных ассетов с
|
||||
размерами и готовый промпт для дизайн-ИИ — в **`docs/ASSET_BRIEF.md`**.
|
||||
- **Свой/новый ассет:** просто положи PNG с именем `<ключ>.png` в **`src/assets/`**
|
||||
(dev-сервер отдаёт их сразу, прод-сборка копирует в `dist/assets`). Код менять не нужно.
|
||||
Ключи = именам файлов (`player-ranged`, `enemy-boss`, `floor`, `door-closed`, `tear`,
|
||||
`heart-full`, `icon-ranged`, …); полный список и промпт для дизайн-ИИ — в **`docs/ASSET_BRIEF.md`**.
|
||||
- **Запасной рисунок (фолбэк):** функции `drawX()` в `assets.ts` — правь их, только если
|
||||
нужен другой плейсхолдер на случай отсутствия PNG.
|
||||
- **Цвета/тинты/фон** (не текстуры) — в **`src/render/theme.ts`** (`Theme` + `DEFAULT_THEME`).
|
||||
- **HUD-ассеты** (сердечки `heart-*`, иконки `icon-*`) грузит `HudOverlay`; меню (`logo`,
|
||||
`menu-bg`) — `index.html`. Те же имена в `src/assets/`.
|
||||
|
||||
- **Своя палитра:** сделай ещё один объект `Theme` и передай его в
|
||||
`new ThreeRenderer(canvas, myTheme)` в `main.ts`. Сейчас рендер создаётся один
|
||||
|
||||
Reference in New Issue
Block a user