# pygame

Правило для Cursor задаёт каркас Pygame-проекта: один UIManager, фиксированный шаг времени, вёрстка на якорях и темы в JSON.

- правило · `type=rule` · Cursor · ★ 3579
- Автор: sanjeed5
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/pygame.mdc
- Обновлён: 2026-05-19
- HTML: https://affpapa.org/nevibecode/rules/pygame

## Что делает

Файл `.cursor/rules/pygame.mdc` подключается к Cursor и срабатывает на Python-файлы по маске `**/*.py`. Внутри — набор паттернов: класс игры с главным циклом, отдельные методы обработки событий, обновления и отрисовки, единственный экземпляр `UIManager` из `pygame-gui`, созданный на старте.

Для интерфейса правило требует `relative_rect` и якоря вместо жёстких пиксельных координат, поэтому кнопки переживают изменение размера окна. Стили выносятся в JSON-тему, а конкретные элементы получают `object_id` вроде `#red_button`. Кадры ограничиваются через `pygame.time.Clock().tick(FPS)`, а `time_delta` уходит в `manager.update` — без этого анимации интерфейса плывут на разной частоте обновления экрана.

Каждый блок идёт парой: сначала пример «как не надо» с разбросанной логикой UI прямо в цикле, потом рабочий вариант. Если вы уже используете другой UI-слой, скажем `pygame_menu`, примеры придётся переписывать под него — правило про `pygame-gui` говорит прямо.

## Установка

### Cursor (родная платформа)

**Вручную: положить файлы**
- Файл: `.cursor/rules/pygame.mdc` — Во frontmatter: description, globs, alwaysApply

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/pygame.md` — Поле paths во frontmatter ограничивает файлы: globs из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### GitHub Copilot

**Вручную: положить файлы**
- Файл: `.github/instructions/pygame.instructions.md` — Поле applyTo задаёт, к каким файлам применять: globs из источника → applyTo

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/pygame.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/pygame.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/pygame.mdc

## Когда брать
- собрать каркас игры с отдельными методами событий, обновления и отрисовки
- вынести стили кнопок и шрифты в JSON-тему вместо правок кода
- сделать интерфейс, который не разъезжается при изменении размера окна
- привязать скорость игры к фиксированному FPS, а не к мощности железа
- убрать создание элементов UI прямо из главного цикла

## Примеры запросов агенту
- Собери каркас Pygame-игры по правилу pygame: один UIManager, фиксированный timestep
- Перепиши эту кнопку на relative_rect и якоря, как требует правило pygame
- Вынеси цвета и шрифт кнопки в JSON-тему и подключи её через object_id

## Похожие
- [pygame-core](https://affpapa.org/nevibecode/skills/pygame-core.md) — скилл · 5100 установок
- [godot-ui](https://affpapa.org/nevibecode/skills/godot-ui.md) — скилл · 2700 установок
- [game-designer](https://affpapa.org/nevibecode/skills/game-designer.md) — скилл · 1900 установок
- [build-game-changelog](https://affpapa.org/nevibecode/skills/build-game-changelog.md) — скилл · 1200 установок
- [gaming-entertainment](https://affpapa.org/nevibecode/skills/gaming-entertainment.md) — скилл · 532 установки
- [arc-mastery](https://affpapa.org/nevibecode/skills/arc-mastery.md) — скилл · 523 установки

Из того же набора: [sanjeed5/awesome-cursor-rules-mdc](https://affpapa.org/nevibecode/by/sanjeed5/awesome-cursor-rules-mdc.md) — 69 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
