アレグロでゲームを書いていますが、いくつかの画像ファイルをロードしたいと思います。ただし、al_load_bitmapを呼び出すと、nullポインターが返されます。IDEとしてXCode4.1を使用しています。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もdirt.pngも読み込まれず、main.cppファイルとまったく同じディレクトリにあります。コンパイルエラーは発生しませんが、画像を読み込もうとすると常にnullポインターが表示されるため、画像をディスプレイに描画するときに表示されません。助けてください!