0

それはこのコードに帰着します:

SDL_Surface *smiley = SDL_LoadBMP("./images/smileys/normal_up.bmp");
printf("Transparation worked: %i\n", SDL_SetColorKey(smiley, SDL_SRCCOLORKEY, SDL_MapRGB(smiley->format, 255, 0, 255)));
SDL_BlitSurface(smiley, NULL, window, NULL);
SDL_Flip(window);

これは私が使用した画像です。ArchLinuxでのSDLの使用。

4

1 に答える 1

0

SDL_SetColorKey()-呼び出しの直前のこれらの行は、すべてを機能させます。

smiley->format->Amask = 0xFF000000;
smiley->format->Ashift = 24;

これで、32または24bppのVideoModeで.bmpまたは.jpgファイルを使用できるようになりました。すべてが機能します。理由がわからない、それがどのように機能するかわからない。

于 2013-02-08T11:28:13.207 に答える