isometric-grid-math — скилл для Claude Code: координаты изометрии
Скилл помогает агенту переводить координаты сетки в экранные и обратно для изометрии 2:1. Пригодится для размещения тайлов и выбора клетки мышью.
npx skills add 0xheycat/isometric-game-skills --skill isometric-grid-math -a claude-codeЧто делает isometric-grid-math
Скилл задаёт формулы проекции 2:1: по координатам столбца и строки агент вычисляет положение тайла на экране, а обратное преобразование помогает определить клетку под курсором. Смещение начала координат добавляется отдельно.
В процессе нужно зафиксировать ширину и высоту тайла, округлять результат обратного преобразования до целых координат и проверять переход туда и обратно. Скилл также требует документировать, считается ли точкой привязки верх тайла или его центр. Менять эту договорённость по ходу проекта рискованно: размещение и выбор клеток могут расходиться.
Какие задачи решает
- вычислить экранное положение тайла по координатам сетки
- определить клетку под курсором мыши
- проверить обратное преобразование координат
- согласовать точку привязки тайла
Примеры запросов агенту
- Рассчитай экранные координаты тайла из его столбца и строки для проекции 2:1.
- Добавь обратное преобразование, чтобы выбирать клетку под курсором мыши.
- Проверь, что переход от координат сетки к экранным и обратно возвращает исходную клетку.
Как установить isometric-grid-math
1Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill isometric-grid-math -a claude-code2Вручную: положить файлы
~/.claude/skills/isometric-grid-math/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/isometric-grid-math/
1Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill isometric-grid-math -a codex2Вручную: положить файлы
.agents/skills/isometric-grid-math/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill isometric-grid-math -a cursor2Вручную: положить файлы
.cursor/skills/isometric-grid-math/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install 0xheycat/isometric-game-skills isometric-grid-math2Вручную: положить файлы
.github/skills/isometric-grid-math/SKILL.md1Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill isometric-grid-math -a gemini-cli2Командой платформы
gemini skills install https://github.com/0xheycat/isometric-game-skills --path skills/isometric-grid-mathВручную: положить файлы
.devin/skills/isometric-grid-math/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill isometric-grid-math -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о isometric-grid-math
Как установить isometric-grid-math в Claude Code?
Выполните npx skills add 0xheycat/isometric-game-skills --skill isometric-grid-math -a claude-code. Файл скилла находится по пути ~/.claude/skills/isometric-grid-math/SKILL.md.
Что делает isometric-grid-math?
Помогает реализовать прямое и обратное преобразование координат для изометрической сетки с проекцией 2:1, включая выбор тайла мышью.
Как проверить преобразования в isometric-grid-math?
Преобразуйте целые координаты клетки в экранные и обратно: результат должен совпасть с исходной клеткой. Также придерживайтесь одной точки привязки — верха тайла или его центра.
Исходный текст
SKILL.md · MIT
--- name: isometric-grid-math description: Use when converting between grid coordinates and screen pixels in a 2:1 isometric projection, including screen-to-grid for mouse picking. license: MIT --- # Isometric Grid Math ## Overview Every isometric bug eventually traces back to the coordinate transform. This skill gives the exact, tested grid<->screen formulas for a 2:1 projection so placement and picking are pixel-correct. ## When to Use - Tiles render in the wrong place or overlap. - Mouse clicks select the wrong tile. - You are starting a renderer and need the core transform. ## Process 1. Fix tile width W and height H (2:1 means W = 2*H). 2. grid->screen: screenX = (col - row) * (W/2); screenY = (col + row) * (H/2). 3. Add the world origin offset so (0,0) is where you want it on screen. 4. screen->grid (for picking): invert the transform using W and H. 5. Round screen->grid results to integer tile coords. 6. Validate round-trip: grid -> screen -> grid returns the original tile. 7. Document the anchor (tile top vs tile center) and stay consistent. ```js const screenX = (col - row) * (W / 2); const screenY = (col + row) * (H / 2); // inverse const col = ((screenX / (W/2)) + (screenY / (H/2))) / 2; const row = ((screenY / (H/2)) - (screenX / (W/2))) / 2; ``` ## Rationalizations (Stop Lying to Yourself) | Excuse | Reality | |---|---| | "I will tweak offsets until it looks right" | Magic offsets break on resize/zoom. Derive the transform. | | "Rounding does not matter" | Unrounded screen->grid selects the wrong tile near edges. Round it. | ## Red Flags - STOP if you catch yourself: - Hard-coded pixel offsets instead of a derived transform. - No screen->grid inverse for picking. - Round-trip grid->screen->grid does not return the same tile. ## Verification You are NOT done until every box is checked: - [ ] grid->screen and screen->grid are both implemented. - [ ] Round-trip conversion is exact for integer tiles. - [ ] Anchor convention is documented and consistent.
© 0xheycat · MIT · 0xheycat/isometric-game-skills