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

Allegro a półprzeźroczystość

Ostatnio zmodyfikowano 2010-01-23 19:31
Autor Wiadomość
Zachariasz
Temat założony przez niniejszego użytkownika
Allegro a półprzeźroczystość
» 2010-01-22 22:21:44
Witam,

wiem że temat był już poruszany ale nie udało mi się uzyskać konkretnej odpowiedzi:
Czy da radę w allegro uzyskać półprzeźroczystość z plików PNG? Ktoś kiedyś podał taki pomysł:

"Hmm. Więc tak. Jeżeli chcesz alphę - otwierasz GIMPA, i niestety musisz zrobić różowe tło. Rysujesz coś na nim, później bodajże dajesz warstwa->przeźroczystość. Jeżeli jest tam już alpha, usuwasz ją, później wchodzisz tam znowu, ustaw kolor jako alphę, i ustawiasz różowy. Powinno działać, mi działało. Of korz plik PNG."

ale to nie działało; nie jestem nawet pewien czy owa wypowiedź dotyczyła pół- czy przeźroczystości. Przeglądałem dokumentację ale niczego takiego nie znalazłem. Czy jeśli w czystym allegro jest to niemożliwe to czy istnieje jakiś trik, aby takową półprzeźroczystość zrealizować w programie napisanym stricte w allegro?

Pozdrawiam
P-13227
malan
» 2010-01-22 23:13:15
Hmmm może luknij do tego: Dev-Cpp\\examples\\allegro\\exalpha.exe.
P-13228
Zachariasz
Temat założony przez niniejszego użytkownika
» 2010-01-23 19:31:31
Właśnie o to chodziło, dzięki wielkie. Zaiste najciemniej jest pod latarnią: szukałem tego wszędzie, podczas gdy rozwiązanie leżało spokojnie na dysku.
Dla potomności:

C/C++
#include <allegro.h>
#include <alpng.h>

int main()
{
    allegro_init();
    alpng_init();
    install_keyboard();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 320, 240, 0, 0 );
    set_palette( default_palette );
    clear_to_color( screen, makecol( 0, 0, 255 ) );
    BITMAP * png = load_png( "1.png", 0 );
    set_alpha_blender();;
    draw_trans_sprite( screen, png, 0, 0 );
    destroy_bitmap( png );
    readkey();
    allegro_exit();
    return 0;
} END_OF_MAIN();

Projekt musi być linkowany dynamicznie. Do konsolidatora dodajemy: -l alpng -l alleg

P-13252
« 1 »
  Strona 1 z 1