Как стать автором
Обновить

Membrane game — шикарная игра для аутистов в 20 строк кода

Время на прочтение 1 мин
Количество просмотров 5.5K

Код игры написан целиком на языке математики. Давайте его разберем.

  1. N отвечает за размер клеток.

  2. pow(1.02, iTime) создает равномерную анимацию клеток, 1.02 - скорость анимации; рано или поздно это вызывает переполнение буфера, но анимацию можно отключить сделав t=1 или сделать так чтобы она замедлялась со временем t=iTime.

  3. dx и dy - смещение позиции курсора по x и по y.

  4. float f = float((x-dx)*(x-dx)*t+(y-dy)*(y-dy)*t); // Это правила игры - в эту функцию (на самом деле не функцию) вы можете внести изменения и получить новую логику игры.

  5. float F = abs(f*sin((x)/N)*sin((y)/N)); // Создает клеточную мембрану для функции (не функции) f.

  6. int R = int(floor(F*pow(16.0, 6.0-ceil(log2(F)/4.0)))); // Адаптирует цвета мембраны добавив нули в конце шестнадцатеричной записи числа или обрезает его по правому краю. По сути это готовый индекс цвета X11, который используется в HTML или Photoshop.

Короче всё просто. Я на самом деле новичок и в математике и в GLSL, но моим друзьям понравилась эта игра, и мне интересно, как её оценит Хабр. Если у вас есть идеи, вы можете ее форкнуть. Тех, кто захочет попробовать перенести на другие языки программирования, предупрежу, что такие вычисления для каждого пикселя весьма затруднительны для процессора - надо программировать шейдеры (ну лично мой опыт, но вообще я не против)

Теги:
Хабы:
-30
Комментарии 34
Комментарии Комментарии 34

Публикации

Истории

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн