Witam. Mam problem, potrzebuję wyświetlić pewną bitmapę w Allegro, która powinna zniknąć po wciśnięciu spacji, jednak nie działa to tak, jak powinno.
Gdy napiszę:
if (kolizja(x, y, 30, 30, zwierz_x, zwierz_y, 30, 30)==true)
{
if (key[KEY_SPACE])
{
zwierz = load_bmp ("pliki/grafika/zwierz_zdechl.bmp", default_palette);
pz -= 50;
zwierz_zywy = 0;
}
}
[...]
else if (zwierz_zywy==0)
{
ramka = load_bmp("pliki/grafika/ramka.bmp",default_palette);
masked_blit (ramka, bufor, 0, 0, 170, 90, ramka->w, ramka->h);
textout_ex (bufor, font, "Zabiles zwierza! Jestes wielkim wojownikiem!", 197, 95, makecol(0, 0, 0), -1);
if (key[KEY_SPACE])
{
ramka = load_bmp ("pliki/grafika/pupa.bmp", default_palette);
destroy_bitmap(ramka);
zwierz_zywy=2;
}
}
to bitmapa o nazwie ramka wyświetli się i nie zniknie do czasu wciśnięcia spacji. By jednak poprawić pewien błąd w programie, muszę zapisać to w taki sposób:
if (kolizja(x, y, 30, 30, zwierz_x, zwierz_y, 30, 30)==true && zwierz_zywy==1)
{
if (key[KEY_SPACE])
{
zwierz = load_bmp ("pliki/grafika/zwierz_zdechl.bmp", default_palette);
pz -= 50;
zwierz_zywy = 0;
}
}
[...]
else if (zwierz_zywy==0)
{
ramka = load_bmp("pliki/grafika/ramka.bmp",default_palette);
masked_blit (ramka, bufor, 0, 0, 170, 90, ramka->w, ramka->h);
textout_ex (bufor, font, "Zabiles zwierza! Jestes wielkim wojownikiem!", 197, 95, makecol(0, 0, 0), -1);
if (key[KEY_SPACE])
{
ramka = load_bmp ("pliki/grafika/pupa.bmp", default_palette);
destroy_bitmap(ramka);
zwierz_zywy=2;
}
}
jednak wtedy bitmapa o nazwie ramka pojawia się na ułamek sekundy po czym znika. Czy mógłby ktoś pomóc mi rozwiązać ten problem?