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

[Allegro 4] Zmiana wartości RGB bitmapy - przyciemnianie/rozjaśnianie

Ostatnio zmodyfikowano 2015-03-28 17:36
Autor Wiadomość
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.
P-129176
pekfos
» 2015-03-25 21:52:15
getpixel(), putpixel(), lub wyświetlaj półprzezroczystą czarną bitmapę na wszystkim.
P-129177
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.

C/C++
set_trans_blender( 0, 0, 0, 150 ); //przezroczystość bmp maska (od 0-255)
draw_trans_sprite( bufor, maska, 0, 0 );
blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
P-129190
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.
P-129208
Brunon3
Temat założony przez niniejszego użytkownika
» 2015-03-28 17:22:44
Otwieram temat, bo mam problem... z tym. ;)

Kod:

C/C++
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.
P-129335
Gabes
» 2015-03-28 17:26:06
Bufor na screen na końcu.
P-129336
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.
P-129337
pekfos
» 2015-03-28 17:34:29
https://www.allegro.cc/manual​/4/api​/transparency-and-patterned-dra​wing​/truecolor-transparency​/set_alpha_blender
You can't use any of the normal translucency functions while this mode is active, though, so you should reset to one of the normal blender modes (eg. set_trans_blender()) before drawing anything other than 32-bit RGBA sprites.
P-129338
« 1 » 2
  Strona 1 z 2 Następna strona