Brunon3 Temat założony przez niniejszego użytkownika |
[Allegro 4] Zmiana wartości RGB bitmapy - przyciemnianie/rozjaśnianie » 2015-03-25 21:31:07 Witam. Chcę właśnie stworzyć w grze "efekt ciemnej jaskini", i tu pojawia się problem.
Zna ktoś jakąś funkcję z Allegro 4, która pozwala na zmniejszanie lub zwiększanie wartości RGB bitmapy?
Proszę o linki do dokumentacji lub słowa kluczowe.
*Szukałem w Google.*
-BD. |
|
pekfos |
» 2015-03-25 21:52:15 getpixel(), putpixel(), lub wyświetlaj półprzezroczystą czarną bitmapę na wszystkim. |
|
Gabes |
» 2015-03-26 09:32:28 Tak jak wspomniał Pekfos, wydajniejszym rozwiązaniem będzie wyświetlenie półprzezroczystej czarnej bitmapy. Utworzyć, wczytać czarną bitmapę maska (może być monochromatyczna). i wyświetlać na końcu. set_trans_blender( 0, 0, 0, 150 ); draw_trans_sprite( bufor, maska, 0, 0 ); blit( bufor, screen, 0, 0, 0, 0, 800, 600 ); |
|
Brunon3 Temat założony przez niniejszego użytkownika |
» 2015-03-26 16:55:10 Myślałem o zmianie RGB bo w RPG Makerze (:P) miałem taką opcję, i właśnie jej używałem do przyciemniania jaskiń. Teraz to samo chciałem zrobić w C++.
Ale jednak sposób Pekfosa, jest (jak zwykle) lepszy, więc go użyję. ;)
Dziękuję za pomoc.
-BD. |
|
Brunon3 Temat założony przez niniejszego użytkownika |
» 2015-03-28 17:22:44 Otwieram temat, bo mam problem... z tym. ;) Kod: mask = create_bitmap( 800, 600 ); clear_to_color( mask, makecol( 0, 0, 0 ) );
set_trans_blender( 0, 0, 0, 150 );
draw_trans_sprite( bufor, mask, 0, 0 ); draw_sprite( screen, bufor, 0, 0 ); No i program się kompiluje, ale podczas działania nie widać tego "przyciemnienia". Co jest przyczyną problemu? Może warto jeszcze wspomnieć; na początku wywołuje jeszcze set_alpha_blender(); . EDIT: Wyrzuciłem set_alpha_blender(); i działa! :D Nie rozumiem, co dokładnie powoduje ta funkcja? -BD. |
|
Gabes |
» 2015-03-28 17:26:06 Bufor na screen na końcu. |
|
Brunon3 Temat założony przez niniejszego użytkownika |
» 2015-03-28 17:29:02 @up: Bufor na screen na końcu. |
Nie rozumiem, przecież jest na końcu... Poza tym problem już przecież rozwiązany. :) Wyrzuciłem set_alpha_blender(); i działa! :D |
... Ale mam nowe pytanie dotyczące tematu; Nie rozumiem, co dokładnie powoduje ta funkcja? |
Chodzi oczywiście o set_alpha_blender() . ;) Bo to``````` nie za bardzo do mnie przemawia. -BD. |
|
pekfos |
» 2015-03-28 17:34:29 |
|
« 1 » 2 |