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

[Allegro] Efekt światła

Ostatnio zmodyfikowano 2009-03-18 18:52
Autor Wiadomość
Ju1ian
Temat założony przez niniejszego użytkownika
[Allegro] Efekt światła
» 2009-03-17 19:35:33
Witam! Ostatnio sobie tak dla odprężenia ;D tworzę labiryntówkę. Dla utrudnienia chciałbym dodać ciemność, a nad postacią, chodzące światło (tak jakby trzymał pochodnię). Gdyby światło było czarne, a ciemność biała, to bym sobie poradził ;P. Ale wycinać koła w bitmapie nie umiem. Najlepiej by, było z płynnym przejściem, ale normalnie też może być. Czy wiecie jak takie coś zrobić? Pozdrawiam.
P-4789
DejaVu
» 2009-03-17 19:49:56
Moim zdaniem musisz pomyśleć jak wykorzystać informacje z tego tematu: http://forum.ddt.pl/?Tid=283
P-4790
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-17 20:03:47
Umiem robić obiekty półprzezroczyste, tylko nie umiem "wydrążać dziur" w bitmapie ;)
P-4791
DejaVu
» 2009-03-17 20:09:53
1. zrób dodatkowy bufor wielkości ekranu
2. uczyń go całego czarnego
3. narysuj na nim kółko różowe
4. po narysowaniu wszystkiego na buforze głównym nanieś ten dodatkowy bufor na główny bufor
5. rysuj bufor na ekranie

Cała filozofia :)
P-4793
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-17 20:39:09
Twoim sposobem program dziwnie się wywala (kompiluje się). Jest czarny ekran i od razu się wyłącza.
EDIT: Ok, już się nie wyłącza, ale ten sposób nie działa. Przynajmniej nie w allegro.
P-4795
Patzick
» 2009-03-17 21:00:36
najlepiej pokaż fragment kodu odpowiedzialny za wyświetlanie tego wszystkiego to będzie można powiedzieć Ci co jest nie tak :)
P-4797
Patzick
» 2009-03-17 22:09:41
prowizorycznie przygotowany kawałek kodu, ale działa...
C/C++
BITMAP * pochodnia = NULL; //potem w main pochodnia = create_bitmap(800,600);

void efekt_pochodni() {
    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 );
};

//teraz w funkcji, która wyświetla ruch dajesz
efekt_pochodni();
blit( bufor, screen, 0, 0, 0, 0, 660, 480 );

//i na końcu usuń BITMAPĘ
destroy_bitmap( pochodnia );

To jest taki efekt dziury w ścianie bardziej, ale już chyba nie będziesz miał problemu, żeby inne cienie pododawać :)
Daj znać czy już ok.
P-4798
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-17 22:46:06
Jest ok ;) Dziękować ;P Tylko jak zrobić to płynne przejście ?
P-4800
« 1 » 2 3
  Strona 1 z 3 Następna strona