|
Крупные объекты: props с footprint в движке, слоты арта, проба дома кодом
Работа C из docs/plan.md — подготовка к зданиям акта 2. Движок: - TileMapData.props: крупный объект с footprint w×h от СЗ-угла — коллизия по всему прямоугольнику, земля под ним (ground), спрайт якорем низ-центр footprint'а; без текстуры — колонна-плейсхолдер (общий с tall хелпер). - IsoDepthLayer.addRect: глубина по диагонали юго-восточного угла footprint'а — герой у южной стены перекрывается домом, перед южным углом рисуется поверх. - mapFormat: props в файловом формате + валидация (целые w/h ≥ 1, footprint внутри карты, высота в юнитах). - LocationScene вставляет map.propViews в общий depth-слой. - Доки движка: maps.md (секция props), render.md (addRect). Арт (проба C2): - Арт-библия: слоты крупных спрайтов (дом 2×2 — 64×80, 3×3 — 96×96, 4×4 — 128×112); плотность пикселя как у тайлов. - gen.mjs: tiles/house_big.png (64×80) — композит: модули щитов + крыша из шпал + козырёк + окна. Сравнение с AI-апскейлом 24→48 — tools/aiart/probe-c2.png: код-композит заметно чище, апскейл — мыло с чужой плотностью пикселя. Вывод: крупные объекты — код-композит; апскейл только как болванка (см. docs/plan.md, работа C). Тесты: 318 (+9: footprint, depth-rect, валидация пропов). Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| apps/game/assets/tiles/house_big.png 0 → 100644 |
|---|
|
|
| apps/game/src/scenes/LocationScene.ts |
|---|
| apps/game/tools/aiart/probe-c2.png 0 → 100644 |
|---|
|
|
| apps/game/tools/pixelart/gen.mjs |
|---|
| docs/art-style.md |
|---|
| docs/engine/maps.md |
|---|
| docs/engine/render.md |
|---|
| docs/plan.md |
|---|
| packages/engine/src/index.ts |
|---|
| packages/engine/src/map/IsometricTileMap.ts |
|---|
| packages/engine/src/map/__tests__/isometricMap.test.ts |
|---|
| packages/engine/src/map/__tests__/mapFormat.test.ts |
|---|
| packages/engine/src/map/mapFormat.ts |
|---|
| packages/engine/src/render/IsoDepthLayer.ts |
|---|
| packages/engine/src/render/__tests__/IsoDepthLayer.test.ts 0 → 100644 |
|---|