Аллегро draw_sprite () - PullRequest
       42

Аллегро draw_sprite ()

2 голосов
/ 23 апреля 2011

У меня в папке отладки есть растровое изображение 114x114 с именем "x.bmp", и этот простой код

#include <allegro.h>

BITMAP *Sprite;

int main(){
    allegro_init();
    install_keyboard();
    set_color_depth(16);
    set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0);

    Sprite = load_bitmap( "x.bmp", NULL);

    acquire_screen();
    draw_sprite(screen, Sprite, 50, 50);
    release_screen();

    readkey();

    return 0;

}   
END_OF_MAIN();

Но он зависает и выглядит следующим образом Frozen screen

Но когдаЯ просто запускаю файл AllegroTest.exe через проводник Windows , он работает ...

Я использую Allegro 4.2.3 и MSVC ++ 2008

Редактировать: Вот что-то интересное я получаю в своем окне вывода отладки:

al-gfx INFO: The driver will wait for vsync.
al-gfx INFO: set_gfx_card success for 640x480x16.
Assert failed at line 250 of c:\users\matthew\desktop\allegro\4.2\include\allegro\inline\draw.inlThe thread 'Win32 Thread' (0x137c) has exited with code -805306369 (0xcfffffff).
The thread 'Win32 Thread' (0x25b8) has exited with code -805306369 (0xcfffffff).

c: \ users \ matthew не существует !!!У меня нет пользователя по имени Мэтью?

1 Ответ

4 голосов
/ 23 апреля 2011

Растровое изображение, скорее всего, не может быть загружено.

Когда вы запускаете приложение из отладчика Visual Studio, рабочим каталогом по умолчанию является каталог проекта . Когда вы запускаете приложение через проводник, рабочим каталогом является каталог, в котором находится исполняемый файл. Обычно каталог проекта будет ... \ SolutionName \ ProjectName \ .

Когда вы указываете относительный путь, т.е. x.bmp, приложение будет искать его в рабочем каталоге, а затем в других каталогах, например, перечисленных в переменной среды PATH. Обычно предпочтительнее указывать абсолютный путь, если это возможно.

Скорее всего, ваш файл изображения находится в том же каталоге, что и исполняемый файл, но этот каталог не является каталогом проекта.

...