我在程序中使用masked_blit()来显示具有透明度的.bmp(使用完美的粉红色)。但是当我构建时,它说:


  错误:未在此范围内声明“ masked_blit”


我包括了Allegro的.h,当然我没有忘记所有这些:

-lallegro -lallegro_font -lallegro_ttf -lallegro_image


这是我编写的代码的摘录:

#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
[...]
 head = al_load_bitmap("head.bmp");
 masked_blit(head, display, 0,0,0,0,10,10);
 al_clear_to_color(al_map_rgb(0,0,0));
 al_draw_bitmap(head, screen_w / 2, screen_h / 2, 0);
[..]

最佳答案

masked_blit是Allegro 4功能。它在Allegro 5中不存在。

Here are graphics functions in Allegro 5

al_draw_bitmap_region是与masked_blit最相似的功能,但是透明度规则不同(8位alpha通道与1位粉红色作为alpha)。

al_convert_mask_to_alpha(ALLEGRO_BITMAP *bitmap, ALLEGRO_COLOR mask_color)在这里可能有用。

关于c++ - Allegro5中的masked_blit错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15486596/

10-10 01:01