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

Allegro 5 przezroczystość bitmapy

Ostatnio zmodyfikowano 2013-01-29 21:04
Autor Wiadomość
Nekronomik
Temat założony przez niniejszego użytkownika
Allegro 5 przezroczystość bitmapy
» 2013-01-29 16:00:22
Więc tak,mam problem z uzyskaniem przezroczystości bitmapy na bitmapie,chodzi oto żeby za jedną bitmapą było widać drugą,używam takiego kodu;
al_draw_tinted_bitmap(h2o, al_map_rgba_f(255, 255, 255, 0,5),pozycja_x(szerokosc_okna,400), 0, 0);
w al_map_rgba_f(255, 255, 255, 0,5) tuta różności już wpisywałem
wszystko prawie działa jak chce uzyskać przezroczystość bezpośrednio w okienku,
Chce uzyskać mniej więcej taki efekt jak w np(gimp} gdzie nakłada się na siebie przezroczyste warstwy
i widać jak jedna przez drugą przenika gdy się coś narysuje.
P-75303
SeaMonster131
» 2013-01-29 16:02:13
Użyj funkcji bez "_f" i będziesz mógł podawać kolor i alphę w zakresie 0-255. Jeżeli podasz funkcję z "_f", to liczby muszą być w zakresie 0-1.

al_map_rgba_f( 255, 255, 255, 0, 5 )

Nie za dużo tych argumentów?

A po drugie nawet w dokumentacji masz przykład... http://alleg.sourceforge.net/a5docs/refman/graphics.html#al_draw_tinted_bitmap
P-75305
Nekronomik
Temat założony przez niniejszego użytkownika
» 2013-01-29 16:26:46
Z "_f" tez już próbowałem.
gdy podam takie wartości to bitmapa nie jest przezroczysta
al_draw_tinted_bitmap(h2o, al_map_rgba(255, 255, 255, 250),pozycja_x(szerokosc_okna,400), 0, 0);
a tu zmienia jak by w sobie przezroczystość
al_draw_tinted_bitmap(h2o, al_map_rgba(255, 255, 255, 150),pozycja_x(szerokosc_okna,400), 0, 0);
na dodatek dziwna smuga robi się.
Ale gdy wyłącze tło to wszystko prawie działa.
Jak będę widział jak wrzuca się tu obrazki to pokaże jak to wygląda.
P-75307
Gabes
» 2013-01-29 19:53:10
C/C++
al_map_rgb( 255, 255, 255 ); argumenty to liczby unsigned char czyli z zakresu od 0 do 255.- RGB
al_map_rgba( 255, 255, 255, 128 ); tu jak wyzej plus kanal alpha.- RGBA
al_map_rgb_f( 1.0, 1.0, 1.0 ); argumenty to liczby float z zakresu 0.0f do 1.0f - RGB
al_map_rgba_f( 1.0, 1.0, 1.0, 0.5 ); tu jak wyzej plus kanal alpha.RGBA

Zmieniając argumenty RGB można wyświetlać jeden, dwa, lub trzy kolory w bitmapie
By nie było tzw. smug czyść bufor za każdym obiegiem pętli
al_clear_to_color( al_map_rgb( 255, 255, 255 ) ); - biale tlo.

Aby było widać półprzezroczystą bitmapę powinna się pod nią znajdować jakaś inna wielobarwna, bo inaczej wygląda jak by była tylko rozjaśniona.  


P-75334
Nekronomik
Temat założony przez niniejszego użytkownika
» 2013-01-29 20:45:32
al_draw_scaled_bitmap(tlo,0, 0, 1024, 768 , 0, 0, szerokosc_okna, wysokosc_okna, false);   //to jest tło wielobarwne
al_draw_tinted_bitmap(h2o, al_map_rgba(255, 255, 255, 150),pozycja_x(szerokosc_okna,400), 0, 0);  //to jest bitmapa która ma być przezroczysta
al_clear_to_color(al_map_rgb(255,255,255));

wszystko jest w pętli for
dodatkowo dla bitmapy h2o użyłem
al_convert_mask_to_alpha( h2o, al_map_rgb( 255 , 255 , 255 ) );
ale to chyba nie powinno powodować błędu.
Jedynie co się dzieje to cień wokół napisu w bitmapie h2o jest biały całkowicie.
gdy zmieniam rgb na i alfa;
al_map_rgba(10, 10, 10, 10)
to wszystko działa jak powinno ale bitmapa jest strasznie jasna ale przezroczysta,ale jak chce przyciemnić bitmapę to pojawiają się smugi.

http://imageshack.us/photo/my-images/210/nowyobrazmapabitowanh.png/    //tak wygląda po przyciemnieniu
http://imageshack.us/photo/my-images/89/nowyobrazmapabitowabh.png/     //a tak po rozjaśnieniu
P-75343
Gabes
» 2013-01-29 21:04:11
al_convert_mask_to_alpha( h2o, al_map_rgb( 255 , 255 , 255 ) );
ta funkcja powoduje że w bitmapie h2o kolor biały nie będzie wyświetlany, i tyle
Zajrzyj na stronę:https://www.allegro.cc/files/
Pobierz dokumentacje w  Reference Manual: Online, PDF
Sto przykładowych programów plus dwie gry-demo -Examples: Source & Windows Binaries
Bo tak to co chwile będziesz o coś pytał, a są to podstawy.
P-75344
« 1 »
  Strona 1 z 1