Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Czyszczenie tła (allegro)

Ostatnio zmodyfikowano 2009-10-18 21:21
Autor Wiadomość
Programer
Temat założony przez niniejszego użytkownika
Czyszczenie tła (allegro)
» 2009-10-14 13:48:44
Mam taki problem - tworzę sobię grę i po wyświetleniu kropki na tle ona zamalowywuje mi tło. Nie mogę korzystać z funkcji clear_to_color bo tło jest wielokolorowe. Jest jakiś inny sposób, aby za każdym obiegiem pętli czyścić tło do jego pierwotnego stanu? Kod:
C/C++
t.i = t.kolizja( t.kropa_x, t.kropa_y, t.kropa_x2, t.kropa_y2, t.kropa_x3, t.kropa_y3, t.kropa_x4, t.kropa_y4, 100, 100, 700, 500 );
t.ruch();
blit( t.kropa, t.tlo, 0, 0, t.kropa_x, t.kropa_y, t.kropa->w, t.kropa->h );
blit( t.tlo, screen, 0, 0, 0, 0, 800, 600 );
P-10888
pekfos
» 2009-10-14 17:07:53
musisz mieć tło zapisane w zmiennej BITMAP. czyścisz bufor
clear_to_color() rysujesz tło i masz
P-10893
Programer
Temat założony przez niniejszego użytkownika
» 2009-10-15 13:49:05
Przecież tutaj buforem jest tło... A na tle nie mogę użyć clear_to_color, bo tło jest wielokolorowe!
P-10913
DejaVu
» 2009-10-15 13:59:29
1) utwórz drugi bufor wielkości ekranu.
2) utwórz w tym nowym buforze tło.
3) czyść bufor ekranu, buforem z tłem.
4) rysuj na buforze ekranu.
5) wyświetl bufor ekranu na ekranie.
P-10914
Programer
Temat założony przez niniejszego użytkownika
» 2009-10-18 20:46:35
Dalej nie działa... Teraz kod wygląda tak:

C/C++
clear_to_color( t.bufor, makecol( 0, 0, 0 ) );
t.i = t.kolizja( t.kropa_x, t.kropa_y, t.kropa_x2, t.kropa_y2, t.kropa_x3, t.kropa_y3, t.kropa_x4, t.kropa_y4, 100, 100, 700, 500 );
t.ruch();
blit( t.kropa, t.tlo, 0, 0, t.kropa_x, t.kropa_y, t.kropa->w, t.kropa->h );
blit( t.tlo, t.bufor, 0, 0, 0, 0, t.tlo->w, t.tlo->h );
blit( t.bufor, screen, 0, 0, 0, 0, 800, 600 );
P-10969
DejaVu
» 2009-10-18 21:18:57
To zrób:
bufor <- tło
bufor <- grafika
bufor <- grafika
ekran <- bufor
P-10974
Programer
Temat założony przez niniejszego użytkownika
» 2009-10-18 21:21:55
Mam wyświetlić kropę na buforze? - nie działa.

Daj kod, bo się zaraz załamię :(

@edit - Już działa, zła kolejność w kodzie była, dzięki za pomoc :)
P-10975
« 1 »
  Strona 1 z 1