Allegro 4.2.1,删除bmp背景颜色

时间:2010-02-18 19:49:56

标签: c++ allegro

我一直在使用allegro 4.2.1构建游戏,需要帮助才能删除特定的颜色以使其不可见。背景颜色为(255,0,255)。我一直在以下网站,但他们没有帮助我很多:

http://www.allegro.cc/forums/thread/599210http://www.cpp-home.com/tutorials/258_1.htm

如果有人可以给我一个例子,我会很高兴。

1 个答案:

答案 0 :(得分:1)

您需要执行以下操作才能启用透明像素:

  • 在致电set_color_depth(32)

  • 之前致电set_gfx_mode()
  • 致电set_gfx_mode()

  • 后加载图片
  • 使用masked_blit()draw_sprite()绘制图片。

如果您执行上述操作,所有“魔幻粉红”像素(100%红色,0%绿色,100%蓝色)将被视为透明。

BITMAP *bmp;
allegro_init();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
clear_to_color(screen, makecol(0,0,0));

// once the video mode has been set, it is safe to create/load images.
// this bitmap will be 640x480 with pure pink.
bmp = create_bitmap(640, 480);
clear_to_color(bmp, makecol(255,0,255));
rectfill(bmp, 100,100, 200,200, makecol(255,255,255));

draw_sprite(screen, bmp, 0, 0);

// or
// masked_blit(bmp, screen, 0,0, 0,0, 640,480);