Przemok123 Temat założony przez niniejszego użytkownika |
Kolizja z przedmiotem i po 20 sekundach wyświetlenie go ponownie » 2011-11-17 22:32:42 Witam
Chce zrobić tak ,że spada sobie przedmiot z góry i gdy nastąpi kolizja to przedmiot zniknie (to mam) ,a po np. 20 s pojawi się znów i tam co 20 s. Spada, Kolizja, znika, 20s , spada, kolizja, znika, 20s .....
Napisałem coś takiego..tylko ,że nie działa:
Przed main:
,a potem w programie:
if(( gruszka_y <= 768 ) ) { gruszka_y++; } else { gruszka_x =( rand() % 950 ) + 50; gruszka_y = 0; }
if(( kolizja( ludek.x, ludek.y, ludek.s, ludek.w, gruszka_x, gruszka_y, 71, 79 ) == true ) && wyswietl ) { pkt += 10; textprintf_ex( bufor, tekst, 680, 26, makecol( 255, 0, 0 ), - 1, " +10 pkt", pkt ); wyswietl = false; czas_reakcji = clock() + 5 * CLOCKS_PER_SEC; } if( czas_reakcji <= clock() ) { if( wyswietl == false ) { czas++; if( czas >= 200 ) { wyswietl = true; gruszka_x =( rand() % 950 ) + 50; gruszka_y = 0; } } else masked_blit( gruszka, bufor, 0, 0, gruszka_x, gruszka_y, gruszka->w, gruszka->h ); }
Gdy zrobiłem sobie to na zwykłej (niespadającej) bitmapie to działa, zrobiłem wtedy tak:
while( !key[ KEY_ESC ] ) { clear_to_color( bufor, makecol( 150, 150, 150 ) ); if( key[ KEY_LEFT ] ) { czas_reakcji = clock() + 3 * CLOCKS_PER_SEC; } clear_to_color( bufor, makecol( 150, 150, 150 ) ); if( czas_reakcji <= clock() ) { masked_blit( ludek, bufor, 0, 0, ludek_x, ludek_y, ludek->w, ludek->h ); } blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); }
i wtedy jak nacisnąłem klawisz w lewo to bitmapa znikała na jakiś czas i pojawiała się, czyli zadziałało
Dziękuje za pomoc i pozdrawiam |