2

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

ALLEGRO_BITMAP files[10];

得到以下编译错误:“字段的类型不完整 ALLEGRO_BITMAP”

我也试过:

ALLEGRO_BITMAP* files = new ALLEGRO_BITMAP[10];

得到编译错误:'分配不完整类型 ALLEGRO_BITMAP'

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

4

1 回答 1

3

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

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

ALLEGRO_BITMAP *files[10];
files[0] = al_create_bitmap(640, 480);
于 2012-06-06T13:50:32.247 回答