我在程序中使用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 5al_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/