【发布时间】:2012-06-08 05:38:50
【问题描述】:
我正在用 allegro 编写游戏,并想加载一些图像文件。但是,每当我调用 al_load_bitmap 时,都会得到一个空指针。我使用 XCode 4.1 作为我的 IDE。我会尝试使用 g++ 进行编译(以防它是路径问题)但是我不知道我需要做什么才能在命令行中使用 g++ 编译它(只是 g++ main.cpp 不起作用)。无论如何,这是我的代码:
ALLEGRO_PATH *path = al_get_standard_path(ALLEGRO_RESOURCES_PATH);
for (int i = 0; i < NUM_TILES; i++)
{
switch (static_cast<Tile>(i)) {
case GRASS:
al_set_path_filename(path, "grass.png");
tileFiles[i] = al_load_bitmap(al_path_cstr(path, '/'));
if (!tileFiles[i])
{
std::cerr<<"grass.png not initialized"<<std::endl;
}
break;
case DIRT:
al_set_path_filename(path, "dirt.png");
tileFiles[i] = al_load_bitmap(al_path_cstr(path, '/'));
if (!tileFiles[i])
{
std::cerr<<"dirt.png not initialized"<<std::endl;
}
break;
default:
std::cerr
<< "Missing case statement for datatype Tile numbered at "
<< i
<< " in Board::Board (float mw, float mh, int tst)"
<< " declared in Board.cpp."
<< std::endl;
break;
}
}
我已经跑了:
if(!al_init_image_addon()) {
al_show_native_message_box(display, "Error", "Error", "Failed to initialize al_init_image_addon!",
NULL, ALLEGRO_MESSAGEBOX_ERROR);
return -1;
}
我也说过:
#include "allegro5/allegro_image.h"
#include "allegro5/allegro_native_dialog.h"
在我的文件顶部。既不加载grass.png,也不加载dirty.png,它们与我的main.cpp 文件位于完全相同的目录中。我没有编译错误,但是当我尝试加载我的图像时,我总是得到空指针,所以当需要将它们绘制到显示器时,它们不会显示。请帮忙!
【问题讨论】:
-
图片加载失败,可以查看
allegro_error看看有什么问题? -
检查 allegro_error 是什么意思?
-
如果你点击链接,你会看到
allegro_error是一个字符串变量,可能包含可以打印的错误信息。 -
编译器声称 allegro_error 是一个未定义的变量,所以除非我遗漏了什么,否则我无法访问它或它可能包含的任何信息。
-
allegro_error在 Allegro 5 中不存在。
标签: c++ image allegro allegro5