0

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);
[..]
4

1 回答 1

3

masked_blit是 Allegro 4 函数。它在 Allegro 5 中不存在。

这是 Allegro 5 中的图形功能

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

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

于 2013-03-19T00:09:56.863 回答