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

SDL - Przezroczystość

Ostatnio zmodyfikowano 2009-11-11 15:28
Autor Wiadomość
Orpis
Temat założony przez niniejszego użytkownika
SDL - Przezroczystość
» 2009-11-09 19:34:23
Mam problem...chciałem zrobić przezroczysty kursor...jeżeli kogoś interesuje kod to:
C/C++
#include <SDL.h>
SDL_Surface * ekran = NULL;
SDL_Surface * przycisk = NULL;
SDL_Surface * kursor = NULL;
SDL_Rect przyciskDane;
SDL_Rect przyciskCel;
SDL_Rect kursorDane;
SDL_Event zdarzenie;
int myszkaX, myszkaY;
bool wyjscie = false;
int main( int argc, char * args[] )
{
    SDL_Init( SDL_INIT_EVERYTHING );
    ekran = SDL_SetVideoMode( 800, 600, 32, SDL_SWSURFACE | SDL_DOUBLEBUF );
    przycisk = SDL_LoadBMP( "przycisk.bmp" );
    kursor = SDL_LoadBMP( "kursor.bmp" );
    przyciskDane.w = 200;
    przyciskDane.h = 50;
    przyciskCel.x = 300;
    przyciskCel.y = 275;
    kursorDane.x = 0;
    kursorDane.y = 0;
    while( !wyjscie )
    {
        SDL_FillRect( ekran, NULL, 0 );
        SDL_ShowCursor( SDL_DISABLE );
        SDL_BlitSurface( przycisk, & przyciskDane, ekran, & przyciskCel );
        SDL_BlitSurface( kursor, NULL, ekran, & kursorDane );
        SDL_Flip( ekran );
        while( SDL_PollEvent( & zdarzenie ) )
        {
            if( zdarzenie.type == SDL_MOUSEMOTION )
            {
                kursorDane.x = zdarzenie.motion.x;
                kursorDane.y = zdarzenie.motion.y;
            }
            if( zdarzenie.type == SDL_MOUSEBUTTONDOWN )
            {
                if( zdarzenie.button.button == SDL_BUTTON_LEFT &&
                ( kursorDane.x >= przyciskCel.x && kursorDane.x <=
                przyciskCel.x + przyciskDane.w ) &&( kursorDane.y >=
                przyciskCel.y && kursorDane.y <= przyciskCel.y +
                przyciskDane.h ) )
                {
                    wyjscie = true;
                }
            }
            if( zdarzenie.key.keysym.sym == SDLK_ESCAPE ) wyjscie =
                 true;
           
        }
    }
    SDL_FreeSurface( przycisk );
    SDL_FreeSurface( kursor );
    return 0;
}

//to z kursu :P

Więc jak zrobić przezroczystość?
P-11450
DejaVu
» 2009-11-09 22:42:25
Masz kursy, poszukaj w nich. Osobiście nie używałem SDL'a, więc jedyne co mogę zrobić to odsyłać do innych zasobów.
http://www.rares.bee.pl/pliki/teksty/kurs_sdl/
P-11459
Thud
» 2009-11-10 20:57:11
Potrzeba 32-bitowych obrazków (pierwszy bajt - R, drugi bajt - G, trzeci bajt - G, czwarty bajt - A (czyli Alpha). Obsługuje to format PNG. SDL obsługuje go.
P-11479
jimmye
» 2009-11-11 15:13:27
Proponuje blending przy użyciu OpenGL, bo ten w SDL jest wolny :P
Sa tutoriale na stronie SDL ;)
P-11504
Thud
» 2009-11-11 15:28:34
SDL jest wolny, bo nie wykorzystuje akceleracji sprzętowej. :)
P-11505
« 1 »
  Strona 1 z 1