Решил, что если уж делать ретро игру, так делать несколько ретро цветовых режимов (VGA/EGA/CGA). Сделал 8 штук: три монохромных режима, 16-цветовые режимы (Win/Mac), 2-битный и режим Game Boy. Алгоритм преобразования цвета для монохромных режимов сделал такой. Сначала рассчитываю яркость цвета (R, G, B):V = 0,3 * R + 0,59 * G + 0,11 * BМонохромные ретро-мониторы имеют разные цветовые тона для различной яркости символа. Поэтому, оттенок также должен изменяться. Использую такую линейную интерполяцию:RR = sqrt(V) * (monoR1 * (1 - V) + monoR2 * V) GG = sqrt(V) * (monoG1 * (1 - V) + monoG2 * V) BB = sqrt(V) * (monoB1 * (1 - V) + monoB2 * V)Окончательный цвет (RR, GG, BB)Для 16-цветовых режимов я использую другой алгоритм. Для каждого цвета (R, G, B) ищу ближайший цвет в палитре. Вот и все.2-битный и режим Game Boy имеет только четыре цвета в палитре. Простой поиск ближайшего цвета дает очень темную картину. Поэтому, прежде чем искать цвет в палитре, я делаю нормализацию:d = 1 / max (R, G, B)normR = d * R normG = d * G normB = d * BФормулы схематичные. Проверки на деление на ноль не стал упоминать.Надеюсь, что получилось прикольно! Сама игра будет вот тут: ASCIIDENT
Эта анимация огня в ASCII выглядит очень стильно. Мне нравится.
Автор, не забудь бахнуть пост, когда релизнешься, я поиграть хочу!
стильно что пиздец, круть
Куда кидать деньги?
Я напишу) Спасибо!