我在程序中使用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);
[..]
答案 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)
在这里可能很有用。