ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

画像の透明部分

読み込んだ画像の一部分を透明にするには、SDL_SetColorKey()で設定する。

int SDL_SetColorKey(SDL_Surface *surface, Uint32 flag, Uint32 key);

surfaceは設定する画像、flagにフラグ。keyに透明にするピクセルの値を入れる。
フラグにはSDL_SRCCOLORKEYをセット。またSDL_RLEACCELをセットするとRLEアクセラレーションを使って描画する。RLEアクセラレーションは透明ピクセルが水平方向に連続しているとき転送速度がアップする。

SDL_Surface *image;
image = IMG_Load("test.gif");
SDL_SetColorKey(image, (SDL_SRCCOLORKEY|SDL_RLEACCEL), *(Uint8 *)image->pixels);