SDL - Przezroczystość
Ostatnio zmodyfikowano 2009-11-11 15:28
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: #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ść? |
|
DejaVu |
» 2009-11-09 22:42:25 |
|
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. |
|
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 ;) |
|
Thud |
» 2009-11-11 15:28:34 SDL jest wolny, bo nie wykorzystuje akceleracji sprzętowej. :) |
|
« 1 » |