Я использую библиотеку игр Allegro, чтобы сделать игру с черепицей. Я хочу, чтобы плитки были экспоненциально ярче. К сожалению, у Allegro нет функции «Brighten». То, что я тогда решил сделать, было blit плитка в буфер, а затем для каждого пикселя, который он просто затушевывал для этой плитки, я увеличил их значения rgb и putpixel. Большая проблема заключается в том, что это сильно уменьшило частоту кадров, так как она в два раза больше работает. Есть ли способ, которым я могу достичь этого, не имея растрового изображения для каждой плитки, которая немного ярче (что было бы смешно). БлагодаряИзменение яркости блистерного растрового изображения с использованием Allegro
0
A
ответ
1
Вы можете использовать:
, что он делает это принять растровой и сделать это с помощью «света», что вы должны поставить перед использованием этого функция:
поэтому в основном то, что вам нужно сделать, это:
//Init allegro code here
init_allegro_stuff();
//It takes as arguments red, green, blue, alpha
//so in this case it's a white light
set_trans_blender(255, 255, 255, 255);
//Draws the sprite like draw_sprite but with intensity
draw_lit_sprite(buffer, yourSprite, x, y, intensity);
надеюсь, что это помогает :)
0
Это может быть возможным с палитр: http://alleg.sourceforge.net/stabledocs/en/alleg011.html
Я не знаю много о Allegro, но я знаю, что в 8-битных игр старых, замирания обычно достигается за счет изменения цвета таблицы, видеокарты считывает с момента рендеринга, следовательно, дает постоянный способ одновременного обновления многих пикселей на экране.
Надежда, что помогает :)
Спасибо, я использую 32 бит истинный цвет несчастливо – jmasterx