Data: 2010-06-03 15:14:16
konrad | [Allegro, C++] Błędna kolejność bitmap podczas wyświetlania
najważniejsze części kodu
deklaracja zmiennych:
int state = 0, menu = 0; obrazki:
start1 = load_bmp("images/start1.bmp",default_palette); if (!start1) { set_gfx_mode(GFX_TEXT,0,0,0,0); allegro_message("nie mogę załadować obrazka start1 !"); allegro_exit(); return 0; }
start2 = load_bmp("images/start2.bmp",default_palette); if (!start2) { set_gfx_mode(GFX_TEXT,0,0,0,0); allegro_message("nie mogę załadować obrazka start2 !"); allegro_exit(); return 0; }
wyjscie1 = load_bmp("images/wyjscie1.bmp",default_palette); if (!wyjscie1) { set_gfx_mode(GFX_TEXT,0,0,0,0); allegro_message("nie mogę załadować obrazka wyjscie1 !"); allegro_exit(); return 0; }
wyjscie2 = load_bmp("images/wyjscie2.bmp",default_palette); if (!wyjscie2) { set_gfx_mode(GFX_TEXT,0,0,0,0); allegro_message("nie mogę załadować obrazka wyjscie2 !"); allegro_exit(); return 0; }
wyświetlanie:
if(state == 0){ if(menu == 0){ clear_to_color(bufor, makecol(150,150,150)); masked_blit( start1, bufor, 0,0, 100, 100, 257, 63); masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63); blit( bufor, screen, 0,0,0,0, 640,480); if( key[KEY_DOWN]){ menu++; } } else if(menu == 1){ clear_to_color(bufor, makecol(150,150,150)); masked_blit( start1, bufor, 0,0, 100, 100, 257, 63); masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63); blit( bufor, screen, 0,0,0,0, 640,480); if( key[KEY_UP]){ menu--; } }
}
powinny wyświetlać się obrazki start1 i wyjscie2 przynajmniej tak mi się wydaje  a wyświetlają się obrazki start1 i wyjscie1, co źle zrobiłem ? //edit oj przepraszam po prostu odwrotnie nazwałem obrazki  ale nie działa mi zmiana obrazków czyli
if( key[KEY_DOWN]){ menu++; } i if( key[KEY_UP]){ menu--; } ^^możliwe że zmienna się zmienia ale obrazki nie pewnie coś skopałem
| Data: 2010-06-03 15:43:37
ison |
w tym miejscu:
if(state == 0){ if(menu == 0){ clear_to_color(bufor, makecol(150,150,150)); masked_blit( start1, bufor, 0,0, 100, 100, 257, 63); masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63); blit( bufor, screen, 0,0,0,0, 640,480); if( key[KEY_DOWN]){ menu++; } } else if(menu == 1){ clear_to_color(bufor, makecol(150,150,150)); masked_blit( start1, bufor, 0,0, 100, 100, 257, 63); masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63); blit( bufor, screen, 0,0,0,0, 640,480); if( key[KEY_UP]){ menu--; } }
}
przeciez ty w obu przypadkach wyswietlasz zawsze te same bitmapy... rozumiem że można pisać o swoim problemie na forum ale bez przesady, lepiej najpierw pomyśleć, bo tego typu błędy widzi się na pierwszy rzut oka...
| Data: 2010-06-03 15:53:35
konrad |
no niestety ja tak mam i w c++ i w php zrobię głupi mały błąd i szukam go 2 godziny
while( !key[KEY_ESC]) {
while( speed > 0) { if(state == 0){ if(menu == 0){ clear_to_color(bufor, makecol(150,150,150)); masked_blit( start1, bufor, 0,0, 100, 100, 257, 63); masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63); blit( bufor, screen, 0,0,0,0, 640,480); if( key[KEY_DOWN]) menu=1;
} else if(menu == 1){ clear_to_color(bufor, makecol(150,150,150)); masked_blit( start2, bufor, 0,0, 100, 100, 257, 63); masked_blit( wyjscie1, bufor, 0,0, 100, 200, 257, 63); blit( bufor, screen, 0,0,0,0, 640,480); if( key[KEY_UP]) menu=0; }
} else if(state == 1){ if( key[KEY_LEFT]) ludek_x--; if( key[KEY_RIGHT]) ludek_x++; if( key[KEY_UP]) ludek_y--; if( key[KEY_DOWN]) ludek_y++;
speed--; } }
clear_to_color(bufor, makecol(150,150,150)); masked_blit( ludek, bufor, 0,0, ludek_x, ludek_y, ludek->w, ludek->h); blit( bufor, screen, 0,0,0,0, 640,480); if(menu == 0){ clear_to_color(bufor, makecol(150,150,150)); masked_blit( start1, bufor, 0,0, 100, 100, 257, 63); masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63); blit( bufor, screen, 0,0,0,0, 640,480); } else if(menu == 1){ clear_to_color(bufor, makecol(150,150,150)); masked_blit( start2, bufor, 0,0, 100, 100, 257, 63); masked_blit( wyjscie1, bufor, 0,0, 100, 200, 257, 63); blit( bufor, screen, 0,0,0,0, 640,480); } }
remove_int( increment_speed);
destroy_bitmap(ludek); destroy_bitmap(bufor); destroy_bitmap(start1); destroy_bitmap(start2); destroy_bitmap(wyjscie1); destroy_bitmap(wyjscie2); allegro_exit(); return (0); } END_OF_MAIN(); naciskając klawisz esc program się nie zamyka pewnie znowu jakiś głupi błąd ale nie mogę go znaleść
| Data: 2010-06-03 17:40:38
lenrokskate |
od czego jest log kompilacji w IDE? Tam ładnie pisze jaki jest błąd i w której linijce... | Data: 2010-06-03 17:43:46
konrad |
nie ma żadnego błędu i dzieje się to tylko w menu gry ale już wszystko dobrze w menu gry zrobiłem wyjście i git | |
| Statystyki tematu | Ostatnio przeczytali |
|---|
| Czytało użytkowników: | 13 | malan, SeaMonster131, pixelmaster, Iname (√ιק), TheLukon, konrad, madmike44, lenrokskate, szyx_yankez, michalp | | Przeczytało użytkowników: | 10 | | Czytało osób ogólnie: | 24 | | Przeczytało osób ogólnie: | 17 |
| Ostatnia Aktualizacja| 2010-09-01 19:27:34 (4 dni temu) | |
| Ostatnio aktywni |
|---|
| wiew | 35 min | | Koni | 46 min | | Mateusz124 | 48 min | | fish13 | 75 min | | wiewiorka | 88 min | | lenrokskate | 8 godz | | dmx81 | 11 godz | | steckel | 11 godz | | pixelmaster | 15 godz | | maciejo | 15 godz | | jurasnumeras | 15 godz | | Imperator_Edi | 16 godz |
|