Autor Wątek: [C++ i ALLEGRO 5] Problem z wyświetleniem mapy  (Przeczytany 3166 razy)

Offline cybergod

  • Użytkownik

# Lipiec 29, 2009, 13:03:31
Witam!
Piszę prosty program, który wyświetla mapy kafelkowe. Mam dwa obrazki *.bmp. Są one w folderze głównym programu i w folderze Release. Kompilator nie wywala żadnych błędów. Jednak mój program ma problemy ze znalezieniem tych obrazków. Próbowałem nawet podać pełną ścieżkę do obrazków, ale dalej nic. Używam kompilatora Visual C++ 2008 Express Edition. Przy nauce Allegro 5 z kursu C`mons-a nie było takich problemów.
Proszę o pomoc. Z góry dzięki!

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline MatiSSJ

  • Użytkownik

# Lipiec 29, 2009, 13:07:20
Jestes pewien, ze problem jest z dostepem do obrazkow tak?

Offline Pawlox

  • Użytkownik

# Lipiec 29, 2009, 14:21:18
Może daj trochę kodu, żebyśmy zobaczyli jak i gdzie wczytujesz obrazki.

Offline cybergod

  • Użytkownik

# Lipiec 29, 2009, 16:21:00
Oto kod:
ALLEGRO_BITMAP *a = al_load_bitmap("1.bmp");
ALLEGRO_BITMAP *b = al_load_bitmap("2.bmp");
if(!a)
{
cout << "Nie znaleziono obrazka 'a.bmp'!" << endl;
getchar();
return;
}

if(!b)
{
cout << "Nie znaleziono obrazka 'b.bmp'!" << endl;
getchar();
return;
}

Offline MatiSSJ

  • Użytkownik

# Lipiec 29, 2009, 16:28:06
Nie jestem pewien, ale moze nazwy obrazkow nie moga zaczynac sie od cyferki :P.

Offline cybergod

  • Użytkownik

# Lipiec 29, 2009, 16:38:07
Próbowałem zmieniać nazwę, ale to nic nie daje.

Offline Pawlox

  • Użytkownik

# Lipiec 29, 2009, 16:39:41
To nie od tego. Ja też mam nazwy zaczynające się na cyfry :P Gdzie masz umieszczony ten kod? Dodałeś al_init_iio_addon(); przed tym?

Offline cybergod

  • Użytkownik

# Lipiec 29, 2009, 16:46:17
Tak dodałem. Wklejony kod jest tylko fragmentem kodu, który wczytuje obrazki.

Offline MatiSSJ

  • Użytkownik

# Lipiec 29, 2009, 17:13:47
No nie zbytnio znam sie na Allegro5, ale jak cos mi nie wychodzi z obrazkami to wrzucam jakis obrazek do c:\\obrazek.bmp i wtedy nie ma szans na pomylke w sciezce ;].

Offline cybergod

  • Użytkownik

# Lipiec 29, 2009, 17:18:18
No nie zbytnio znam sie na Allegro5, ale jak cos mi nie wychodzi z obrazkami to wrzucam jakis obrazek do c:\\obrazek.bmp i wtedy nie ma szans na pomylke w sciezce ;].
Niestety ten trik też nie działa.

wine

  • Gość
# Lipiec 29, 2009, 17:28:49
może kompilujesz w debug i nie masz tam obrazków?

Offline Pawlox

  • Użytkownik

# Lipiec 29, 2009, 17:32:09
Na pewno masz obrazki w dobrym miejscu? Ja je zawsze wrzucam do Moje Dokumenty/Visual Studio 2008/Projects/"nazwa projektu"/"nazwa projektu"

Offline FireBoll8

  • Użytkownik

# Lipiec 29, 2009, 18:21:11
Hmmm jeśli obrazki się nie wyświetlają to  oznacza że masz je umiejscowione w zły miejscu.
Też miałem taki problem spróbuj tak :

Powiedzmy że mam projekt o nazwie bitmap

znajduje się on na dysku c w folderze Programy.

W folderze programy mam dane projekty, wybieram interesujący mnie folder projektu w moim przypadku będzie to bitmap, i dwa obrazki  wrzucam do folderu z nazwą projektu w moim przypadku bitmap. To powinno poskutkować  miałem chyba taki sam problem jak ty , kiedy zrobiłem tak jak powyżej wszystko było ok.

pozdrawiam życzę rozwiązania problemu.

Offline cybergod

  • Użytkownik

# Lipiec 29, 2009, 20:41:12
Dzięki za odpowiedzi, ale dalej nic  >:( :(

EDIT:
Wkleję cały kod. Może gdzie indziej leży problem.
#include <allegro5/allegro5.h>
#include <allegro5/a5_iio.h>
#include <iostream>

#undef main
using namespace std;

void main()
{
al_init();
al_install_keyboard();
al_init_iio_addon();

if(!al_create_display(640,480))
{
cout << "Nie udalo sie utworzyc okna!" << endl;
getchar();
return;
}

ALLEGRO_BITMAP *a;
a = al_load_bitmap("a.bmp");
ALLEGRO_BITMAP *b;
b = al_load_bitmap("b.bmp");
if(!a)
{
cout << "Nie znaleziono obrazka 'a.bmp'!" << endl;
getchar();
return;
}

if(!b)
{
cout << "Nie znaleziono obrazka 'b.bmp'!" << endl;
getchar();
return;
}

al_set_window_title("Wyswietlanie mapy");

ALLEGRO_KEYBOARD_STATE key_state;
al_get_keyboard_state(&key_state);

int mapa[2][2] =
{
1,0,
0,1,
};

int x = 100;
int y = 100;
while(!al_key_down(&key_state, ALLEGRO_KEY_ESCAPE))
{
al_get_keyboard_state(&key_state);
al_clear_to_color(al_map_rgb(0,0,0));

for (int i = 0; i <= 2; i++)
{
for (int j = 0; j <= 2; j++)
{
if(mapa[i][j] == 0)
{
al_draw_bitmap(a,x + 32,y + 32,0);
}

if(mapa[i][j] == 1)
{
al_draw_bitmap(b, x + 32, y + 32,0);
}
}
}
al_flip_display();
}
al_destroy_bitmap(a);
al_destroy_bitmap(b);
}
« Ostatnia zmiana: Lipiec 29, 2009, 20:44:18 wysłana przez programista12 »

Offline MatiSSJ

  • Użytkownik

# Lipiec 29, 2009, 21:05:40
Ale rozumiem, ze komunikat "Nie znaleziono obrazka a.bmp!" sie pojawia ta?