我尝试使用它:https://github.com/allefant/algif5但这不起作用。
#include "algif.h"
char const* pathBoss1 = "boss1.gif";
ALGIF_ANIMATION *boss1Gif = NULL;
boss1Gif = algif_load_animation(pathBoss1);
// in a function:
al_draw_bitmap(algif_get_bitmap(bossGif, al_get_time()), boss.x, boss.y, 0);
它会抛出许多像这样的错误
严重级代码描述项目文件行抑制状态 错误LNK2019未解析的外部符号_algif_get_bitmap被引用 在函数“void __cdecl drawBoss(struct Boss&,struct ALGIF_ANIMATION *)“ (?drawBoss @@ YAXAAUBoss @@ PAUALGIF_ANIMATION @@@ Z)LearnAllegro C:\ Users \ User \ source \ repos \ LearnAllegro \ LearnAllegro \ LearnAllegro.obj 1
好像找不到图书馆。 (我将所有下载的文件放入ProjectName> ProjectName,因为还有其他.h文件)
我该怎么办?
答案 0 :(得分:1)
没有官方库 - 而是需要将algif.c,bitmap.c,gif.c和lzw.c添加到源文件中。
或者,如果您知道如何创建库,则可以从这4个文件中创建一个库,然后链接到该库。
答案 1 :(得分:0)
图书馆对我不起作用,最后我分别输入了gif帧。我使用的for循环可能会帮助你: 简化版本:
for (int i = 0; i < maxFrameBoss1; i++) {
std::string filename;
filename = "boss1//frame_" + std::to_string(i) + "_delay-0.03s.png";
boss1Image[i] = al_load_bitmap(filename.c_str());
if (!boss1Image[i]) {
fprintf(stderr, "failed to create boss1Image bitmap!\n");
return -1*i;
}
}
确保在程序开头包含此内容:
#include <iostream>
#include <string>