How to Draw a Space Invader
Как нарисовать инопланетянина из Space Invaders
Сначала я делал 3D-рендерер Rayven, но решил быстрее получить результат и выбрал простую тему — инопланетян. Они узнаваемы, легко строятся из кубиков и хорошо смотрятся в серии.
Для генератора я нарисовал 38 вариантов в Aseprite (15×15 пикселей). Вручную заметил: тела почти все похожи на низкополигональные фигуры. Это подсказало алгоритм.
Алгоритм генерации
- Сетка 15×15 остаётся на экране.
- Тело делаем векторным, потом пикселизируем.
- Симметрия по вертикали: строим левую половину и зеркалим.
- Центр тела смещаем вверх, чтобы снизу осталось место для щупалец.
- Верхняя и нижняя точки выбираем случайно на оси симметрии.
- Слева добавляем 1-5 случайных точек (раньше 2-3 и только выпуклые, но расширил правила).
- Зеркалим точки вправо и замыкаем полигон.
- Перекрывающиеся линии при пикселизации исчезают, сохраняя узнаваемость.
Всё остальное — случайные ограничения и мелкие детали, код на GitHub.