Patzick |
» 2009-03-17 23:26:32 Jakieś super to to nie jest ale chociaż Cię naprowadzi. void efekt_pochodni( int a ) { if( a == 1 ) { for( int i = 0; i < 40; i++ ) { set_trans_blender( 255, 255, 255, i ); draw_trans_sprite( bufor, pochodnia, 0, 0 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); }; }; clear_to_color( pochodnia, makecol( 0, 0, 0 ) ); circlefill( pochodnia, SCREEN_W / 2, SCREEN_H / 2, 40, makecol( 255, 0, 255 ) ); masked_blit( pochodnia, bufor, 0, 0, 0, 0, 800, 600 ); };
int a = 1;
efekt_pochodni( a ); a = 0;
Te parametry z zaciemnianiem sobie ułożysz to jest teraz tak na szybkiego, mam nadzieję, że o coś w tym stylu chodziło :) |
|
Ju1ian Temat założony przez niniejszego użytkownika |
» 2009-03-17 23:32:45 ;P Nie chodziło mi o zgaszanie światła xDD Tylko o płynne przejście z "pochodni" w ciemność ;P Dobra idę spać, jutro się pomęczymy ;) |
|
Ju1ian Temat założony przez niniejszego użytkownika |
» 2009-03-18 16:57:35 Ok już jestem. To jak, macie jakieś pomysły? |
|
DejaVu |
» 2009-03-18 17:00:26 Pomyśl i pokombinuj w końcu to Twoje zadanie. Dostałeś już jakiś pomysł i twierdzisz, że jesteś nie zadowolony bo coś tam. Czekasz na gotowe rozwiązanie? Bezsensu, bo teraz to już kwestia tylko i wyłącznie kombinowania wspomnianymi technikami. |
|
Patzick |
» 2009-03-18 17:46:12 Wszystko podane masz, zaciemnienia już wiele razy powtarzałeś że umiesz a tu nic innego nie trzeba...cóż zajęło mi to 2 minuty więc już dam kod, ale na przyszłość staraj się sam pomyśleć. void efekt_pochodni( int a ) { if( a == 1 ) { for( int i = 0; i < 40; i++ ) { set_trans_blender( 255, 255, 255, i ); draw_trans_sprite( bufor, pochodnia, 0, 0 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); }; }; clear_to_color( pochodnia, makecol( 0, 0, 0 ) ); circlefill( pochodnia, SCREEN_W / 2, SCREEN_H / 2, 60, makecol( 255, 0, 255 ) ); masked_blit( pochodnia, bufor, 0, 0, 0, 0, 800, 600 ); if( a == 1 ) { BITMAP * tymcz = create_bitmap( 800, 600 ); for( int i = 0; i < 40; i++ ) { set_trans_blender( 255, 255, 255, i ); draw_trans_sprite( bufor, tymcz, 0, 0 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); }; destroy_bitmap( tymcz ); }; if( a == 0 ) { BITMAP * tymcz = create_bitmap( 800, 600 ); for( int i = 40; i > 20; i-- ) { set_trans_blender( 255, 255, 255, i ); draw_trans_sprite( bufor, tymcz, 0, 0 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); }; destroy_bitmap( tymcz ); } }; ściślej jak masz już tą "dziurę w ścianie" to dodajesz na to dodatkową bitmapę odpowiednio przyciemnioną/rozjaśnioną. Czy o to Ci chodziło? |
|
Ju1ian Temat założony przez niniejszego użytkownika |
» 2009-03-18 17:54:42 Dobra, sam sobie jakoś poradzę. A chodziło mi o co innego. Chciałem zrobić zamiast dziury w ścianie - światło, płynne przejście ze światła w ciemność (rozmazane krawędzie "dziury"). |
|
Patzick |
» 2009-03-18 18:04:33 no to przecież to już czysta kosmetyka. dokładasz dodatkowe bitmapy (ilość zależy od dokładności efektu, który chcesz osiągnąć) w których definiujesz poziom zaciemnienia jako tło i różowe kółko na prześwit i to wszystko nałożone na siebie da Ci świetne efekty. Pamiętaj, żeby kolejne bitmapy miały mniejsze różowe kółka żeby było widać efekt jaki chcesz osiągnąć :) |
|
Ju1ian Temat założony przez niniejszego użytkownika |
» 2009-03-18 18:24:39 Mam coś takiego: for( int i = 0; i <= 20; i++ ) { set_trans_blender( 255, 255, 255,( 255 -( i * 10 ) ) ); circlefill( pochodnia, player_x + 20, player_y + 20, 150 - i, makecol( 255, 0, 255 ) ); }
Niestety, to nic mi nie dało (nadal jest tak samo). Proszę o ostatnią pomoc. |
|
1 « 2 » 3 |