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

[allegro] problem z uzyskaniem przezroczystości

Ostatnio zmodyfikowano 2008-11-22 17:17
Autor Wiadomość
pekfos
Temat założony przez niniejszego użytkownika
[allegro] problem z uzyskaniem przezroczystości
» 2008-11-08 10:28:41
mam problem z przezroczystością w allegro. czytałem tematy na forum na ten temat ale i tak nic z tego :( zrobiłem w paintcie kolor 255,0,255 czyli różowy. dałem na tło postaci i zmieniło się tylko to że zamiast czarnego śladu zostawia różowy.
(zapomniałem dodać że postać zostawia za sobą ślad tła obrazka)
P-2473
DejaVu
» 2008-11-08 12:49:04
W lekcji allegro jest napisane co trzeba zrobić aby mieć przeźroczyste tło: http://kursy.ddt.pl/?LessonId=151.

/edit:
masked_blit( ludek, screen, 0, 0, 200, 100, ludek->w, ludek->h );
P-2477
pekfos
Temat założony przez niniejszego użytkownika
» 2008-11-08 15:26:43
nie pomaga.. nadal obraz ma tło i zostawia ślady na ekranie
P-2481
DejaVu
» 2008-11-08 18:33:25
Wklej kod.
P-2483
grabon
» 2008-11-09 01:14:22
Wiesz co to RGB  ?
Wątpię ;)
P-2492
lynx
» 2008-11-09 20:05:35
Moim zdaniem powinieneś opisać problem dokładniej i starać się budować czytelniejsze zdania. Bo ja szczerze mówiąc nie zabardzo rozumiem o co Ci chodzi w pierwszym poście. Napisz to dokładnie po kolei. Napewno wtedy problem będzie lepiej zobrazowany i łatwiej będzie znaleźć rozwiązanie.


Pozdrawiam, Piotrek.
P-2493
pekfos
Temat założony przez niniejszego użytkownika
» 2008-11-10 10:51:46
C/C++
#include <allegro.h>
volatile long speed = 0;
void increment_speed()
{
    speed++;
}
END_OF_FUNCTION( increment_speed );
LOCK_VARIABLE( speed );
LOCK_FUNCTION( increment_speed );

int main()
{
    allegro_init();
    install_keyboard();
    install_mouse();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 600, 400, 0, 0 );
    install_timer();
    install_int_ex( increment_speed, BPS_TO_TIMER( 100 ) );
    clear_to_color( screen, makecol( 10, 10, 10 ) );
    show_mouse( screen );
    BITMAP * bufor = NULL;
    BITMAP * obraz = NULL;
   
    bufor = create_bitmap( 600, 400 );
    obraz = load_bitmap( "obraz.bmp", default_palette );
   
    int obraz_x = 100, obraz_y = 100;
   
    while( !key[ KEY_ESC ] )
    {
        while( speed > 0 )
        {
            if( key[ KEY_LEFT ] ) obraz_x--;
           
            if( key[ KEY_RIGHT ] ) obraz_x++;
           
            if( key[ KEY_UP ] ) obraz_y--;
           
            if( key[ KEY_DOWN ] ) obraz_y++;
           
            speed--;
            clear_to_color( bufor, makecol( 150, 150, 150 ) );
        }
        masked_blit( obraz, screen, 0, 0, obraz_x, obraz_y, obraz->w, obraz->h );
       
    }
   
    remove_int( increment_speed );
    destroy_bitmap( obraz );
   
   
   
    allegro_exit();
    return 0;
}
END_OF_MAIN();
P-2494
lynx
» 2008-11-10 11:56:40
Twój obraz zostawia ślad, bo tutaj masz źle napisane:
clear_to_color(bufor, makecol(150,150,150));
}
masked_blit( obraz, screen, 0,0, obraz_x, obraz_y, obraz->w, obraz->h);
Funkcja clear_to_color w ogóle nie czyści ekranu tylko bufor, który i tak nie jest wyświetlany. A później już wyświetlasz obraz, ale na ekranie. Powinieneś wszystkie funkcje rysujące wyświetlić w buforze(clear_to_color jest dobrze), a na koniec wyświetlić sam bufor na ekranie. Co do różowego tła to musisz się upewnić, że jest ono idealnie różowe. ;)
P-2495
« 1 » 2
  Strona 1 z 2 Następna strona