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:
+13
-13
@@ -1,11 +1,12 @@
|
||||
# Бриф на ассеты — «Биндим Фигняшку»
|
||||
|
||||
Документ для генерации полного набора графики (через Claude/дизайн-ИИ или художника).
|
||||
Ниже — **готовый промпт** (можно копировать целиком) и **таблица ассетов**, привязанная
|
||||
к нашему пайплайну: каждый ассет ложится в `src/render/assets.ts` вместо текущего
|
||||
процедурного рисунка (заменяем `drawX()` на загрузку PNG через `THREE.TextureLoader`).
|
||||
Документ для генерации/догенерации графики (через Claude/дизайн-ИИ или художника).
|
||||
Ниже — **готовый промпт** (можно копировать целиком) и **таблица ассетов**.
|
||||
|
||||
Следующим заходом мы подключим присланные PNG; пока в игре — простые процедурные плейсхолдеры.
|
||||
> ✅ **Статус: набор уже подключён.** 21 PNG лежат в `src/assets/` и автоматически
|
||||
> грузятся `src/render/assets.ts` по имени файла (`assets/<ключ>.png`); если какого-то
|
||||
> файла нет — рисуется процедурный фолбэк. Этот бриф нужен, чтобы **догенерировать или
|
||||
> заменить** ассеты: достаточно положить PNG с тем же именем в `src/assets/`.
|
||||
|
||||
---
|
||||
|
||||
@@ -93,13 +94,12 @@
|
||||
|
||||
---
|
||||
|
||||
## Как мы это применим (следующий заход)
|
||||
## Как это подключено (уже работает)
|
||||
|
||||
1. Кладём PNG в `src/assets/` (новая папка) и импортируем как URL (Bun умеет в `import img from './x.png'`).
|
||||
2. В `src/render/assets.ts` заменяем процедурные `drawX()` на
|
||||
`new THREE.TextureLoader().load(url)` с теми же ключами — больше нигде ничего менять не нужно
|
||||
(рендер берёт текстуры по ключам, см. `docs/ARCHITECTURE.md` → «Тема / ассеты»).
|
||||
3. При желании заводим тему `Theme` со ссылками на наборы ассетов, чтобы переключать стиль.
|
||||
1. PNG лежат в `src/assets/` с именами-ключами (`floor.png`, `player-ranged.png`, …).
|
||||
2. `src/render/assets.ts` грузит их в рантайме через `THREE.TextureLoader` по пути
|
||||
`assets/<ключ>.png` (НЕ импорт-бандлингом). Нет файла → процедурный фолбэк `drawX()`.
|
||||
3. Dev-сервер отдаёт `/assets/*` из `src/assets/`; прод-сборка копирует их в `dist/assets/`.
|
||||
4. HUD-ассеты (`heart-*`, `icon-*`) грузит `HudOverlay`, меню (`logo`, `menu-bg`) — `index.html`.
|
||||
|
||||
Если пришлёте ОДИН атлас вместо отдельных файлов — приложите JSON с прямоугольниками
|
||||
(`{ "player-ranged": [x,y,w,h], ... }`), мы нарежем через `texture.repeat`/`offset`.
|
||||
**Заменить/добавить:** просто положи PNG с тем же именем в `src/assets/` — подхватится само.
|
||||
|
||||
Reference in New Issue
Block a user