一组ALLEGRO_BITMAP类型对象

时间:2012-06-06 08:52:59

标签: c++ arrays memory-management allegro

所以我正在使用Allegro制作游戏,我正在尝试创建一个ALLEGRO_BITMAP类型对象的数组,这些对象将代表棋盘,这样我就可以在游戏开始时一次性加载我的图像文件,而不是每次我想重绘它们时加载它们。我试图这样做:

ALLEGRO_BITMAP files[10];

会出现以下编译错误:'字段类型不完整ALLEGRO_BITMAP'

我也尝试过:

ALLEGRO_BITMAP* files = new ALLEGRO_BITMAP[10];

获取编译错误:'分配不完整类型ALLEGRO_BITMAP'

我有一种感觉,这与编译器不知道ALLEGRO_BITMAP类型的大小有关,因此不知道如何为这种类型的数组分配内存(但如果我错了,有人可以纠正我) 。我想知道是否有人知道这方面的方法?或者另一种实现我的目标是预先存储ALLEGRO_BITMAP对象而不是在我想重新绘制图块时加载图像文件的方法?我显然可以创建10个不同的变量并将文件存储在其中,但这很糟糕。我也试过使用矢量,但那些也不起作用。

1 个答案:

答案 0 :(得分:3)

大多数Allegro 5数据类型都是不透明的。

您需要创建一个指针数组:

ALLEGRO_BITMAP *files[10];
files[0] = al_create_bitmap(640, 480);