gpt4 book ai didi

c++ - 使用 Allegro 更改 blitted 位图的亮度

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:35:04 24 4
gpt4 key购买 nike

我正在使用 Allegro 游戏库制作一个方 block 游戏。我希望瓷砖以指数方式变得更亮。不幸的是,Allegro 没有“增亮”功能。然后我决定做的是,将一个图 block blit 到缓冲区,然后对于它刚刚为那个图 block blit 的每个像素,我增加了它们的 rgb 值和 putpixel。最大的问题是它严重降低了我的帧率,因为它做了两倍的工作。有什么方法可以实现这一点,而无需为每个稍微亮一点的图 block 设置图 block 位图(这太荒谬了)。谢谢

最佳答案

您可以使用:

draw_lit_sprite

它所做的是获取一个 BITMAP 并使用您必须在使用此函数之前设置的“光”绘制它:

set_trans_blender

所以基本上,您要做的是:

    //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);

希望对你有帮助:)

关于c++ - 使用 Allegro 更改 blitted 位图的亮度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1904993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com