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

[Allegro] Skokowa przezroczystość

Ostatnio zmodyfikowano 2009-08-25 18:41
Autor Wiadomość
Piast
Temat założony przez niniejszego użytkownika
[Allegro] Skokowa przezroczystość
» 2009-08-20 17:01:57
chciałbym aby w rysowanym kole przezroczystość była płynna ,a jest skokowa
C/C++
#include <allegro.h>

void init();
void deinit();

int main() {
    init();
    BITMAP * bufor = NULL;
    bufor = create_bitmap( 640, 480 );
   
    while( !key[ KEY_ESC ] ) {
        int coin = 0, hard = 255;
        int x = 0, y = 0;
        while( coin <= 127 )
        {
            drawing_mode( DRAW_MODE_TRANS, NULL, 0, 0 );
            set_trans_blender( 255, 255, 255, hard );
            ellipse( bufor, 250, 250, x, y, makecol( 150, 150, 150 ) );
            ellipse( bufor, 250, 250, x, y - 1, makecol( 150, 150, 150 ) );
            putpixel( bufor, 250, 250, makecol( 150, 150, 150 ) );
            coin++;
            x++;
            y++;
            hard = hard - 2;
        }
       
       
        blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
        clear_keybuf();
       
    }
   
    deinit();
    return 0;
}
END_OF_MAIN()

void init() {
    int res;
    allegro_init();
   
    set_color_depth( 16 );
    res = set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
    if( res != 0 ) {
        allegro_message( allegro_error );
        exit( - 1 );
    }
   
    install_timer();
    install_keyboard();
    install_mouse();
   
}

void deinit() {
    clear_keybuf();
   
}

da się zrobić łagodne przejścia tonalne narysowanego koła ?
P-9652
krdk
» 2009-08-20 17:19:15
Jeśli dobrze zrozumiałem, to utwórz pętle powtarzającą się [il. klatek] razy, i przy każdym obiegu pętli zwiększaj o 1 przezroczystość.
P-9653
Piast
Temat założony przez niniejszego użytkownika
» 2009-08-20 17:29:42
zrobiłem przezroczystość o 2 (i tak powinno być płynniej ,a o 1 też nic nie daje)
jak zmieniłem bity z 16 na 32 to zrobiła się płaszczyzna na moim okregu i na końcu dopiero zaczęła działać przezroczystość .
Chciałbym aby od początku płynnie przechodziła w obraz który jest tłem (na razie czarne)
P-9656
Piast
Temat założony przez niniejszego użytkownika
» 2009-08-21 13:45:30
próbował ktoś coś z tym zrobić ?
wklejcie ten mój kod na swój kompilator i dajcie odpowiedź jak u was jest ?
P-9682
DejaVu
» 2009-08-21 17:57:30
Wieczorem sprawdzę.
P-9686
Piast
Temat założony przez niniejszego użytkownika
» 2009-08-25 10:46:34
czy ktoś to sprawdzał ?
P-9829
DejaVu
» 2009-08-25 12:45:56
C/C++
#include <allegro.h>

void init();
void deinit();

int main() {
    init();
    BITMAP * bufor = NULL;
    bufor = create_bitmap( 640, 480 );
   
    while( !key[ KEY_ESC ] ) {
        clear_to_color( bufor, makecol( 255, 255, 255 ) );
        int coin = 0, hard = 0;
        int x = 0, y = 0;
        drawing_mode( DRAW_MODE_TRANS, NULL, 0, 0 );
        while( coin <= 127 )
        {
            set_trans_blender( 255, 255, 255, hard );
            ellipse( bufor, 250, 250, x, y, makecol( 150, 150, 150 ) );
            ellipse( bufor, 250, 250, x, y - 1, makecol( 150, 150, 150 ) );
            coin++;
            x++;
            y++;
            hard = hard + 2;
        }
       
       
        blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
        clear_keybuf();
       
    }
   
    deinit();
    return 0;
}
END_OF_MAIN()

void init() {
    int res;
    allegro_init();
   
    set_color_depth( 16 );
    res = set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
    if( res != 0 ) {
        allegro_message( allegro_error );
        exit( - 1 );
    }
   
    install_timer();
    install_keyboard();
    install_mouse();
   
}

void deinit() {
    clear_keybuf();
   
}
Skokowy efekt masz, ponieważ używasz 16 bitowego trybu kolorów. Zmień na 32 bity będzie dobrze. W 16 bitowym trybie masz maksymalnie 64 odcieni koloru (zielonego), 32 niebieskiego i 32 czerwonego. W trybie 32bitowym masz 256 kolorów na każdą składową.
P-9832
Piast
Temat założony przez niniejszego użytkownika
» 2009-08-25 13:22:14
jak zmieniłem na 32 bity to ten okrąg jest jednolity i dopiero pod koniec okręgu zmienia się przezroczystość ,a powinno być równomiernie.
P-9835
« 1 » 2
  Strona 1 z 2 Następna strona