Allegro5中masked_blit出错

时间:2013-03-18 20:45:35

标签: c++ allegro allegro5

我在程序中使用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);
[..]

1 个答案:

答案 0 :(得分:3)

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)在这里可能很有用。