いちばんやさしいゲームの作り方

文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ

Study::Bitmap でマスク画像を取得するためには Study::Bitmap::getMask() メソッドを使います。

ラスターイメージを透過転送するためにはマスク画像が必要ですが、 Study::Bitmap を使うとビットマップ画像からマスク画像を自動的に作ることができます。やり方は簡単、次のように読み込んで Study::Bitmap::getMask() メソッドを呼ぶだけです。

Study::Bitmap player;

// hBackBuffer と互換性のあるビットマップイメージを player.bmp から作る
// このとき緑色 (255, 0, 255) を背景色とする
player.load(hBackBuffer, TEXT("player.bmp"), RGB(255, 0, 255));

// ビットマップイメージのデバイスコンテキストハンドルを取得する
HDC bitmap = player.getBitmap(); // player.bmp を取得する
HDC mask   = player.getMask();   // player.bmp のマスク画像を取得する

// player のイメージを hBackBuffer へ透過転送する
BitBlt(hBackBuffer, x, y, width, height, mask, u, v, SRCAND);
BitBlt(hBackBuffer, x, y, width, height, bitmap, u, v, SRCPAINT);

マスク画像を自分で作るよりだいぶ楽ですね。

Contributions




Trackback URL

メルマガ登録・解除
 
挫折不可能!初級ゲームプログラミング完全マニュアル
RSS track feedいちばんやさしいゲームの作り方 カウンター
ブログSEO対策:track word あわせて読みたい SEO STATUS