Я играю с идеей изменить мою среду разработки игр для создания HTML5-версий игр, созданных с ее помощью. Одной из особенностей среды IDE является возможность определять кадры, которые не только определяют, как графическая ячейка преобразуется (поворачивается, растягивается и т. Д.), Но также и как она окрашивается при рисовании. Поэтому, если бы я хотел зеленые холмы и коричневые холмы, а также подъемы и спуски, мне потребовался бы только один рисунок, определенный для всех тех, просто преобразованный и окрашенный по-разному.
Я могу видеть, как контекст холста HTML5 позволит мне преобразовывать результаты drawImage, но я не вижу практического способа модуляции цветов. Я хочу иметь возможность, например, сказать, что R = 255, G = 255, B = 0, A = 127 и чтобы ни один из синих каналов не проходил (желто-окрашенная версия графика), прорисованная с 50% -ной прозрачностью (помните, что части графической ячейки уже могут быть полупрозрачными или прозрачными).
Возможно ли это? Или мне нужно будет getImageData
и манипулировать пикселями и кешировать копируемые копии? Если мне нужно кэшировать управляемые копии, какова лучшая структура данных JavaScript для этого? Я думаю, что мне нужен какой-нибудь словарь, в котором ключом является индекс изображения, а RGBA каким-то образом составлен как одно значение. Поиск должен быть очень быстрым, потому что это может быть сделано для большинства разрисованных плиток.