タイルはビットマップファイルを読み込んで BitBlt() 関数で描画するわけですが、 PlgBlt() 関数を使うと描画先を任意の頂点の平行四辺形にすることができます。頂点をきちんと算出すればきれいに回転して見せることも可能です。
描画先の平行四辺形は POINT という構造体を要素とする配列で指定します。
POINT descPoints[3] = {{260, 10}, {460, 210}, { 10, 210}};
四角形ですので頂点が4つあるわけですが、最後のひとつは3点から自動的に算出されます。
PlgBlt(hdc, // 描画先( HDC ) descPoints, // 平行四辺形の座標 hMemDC, // 転送元( HDC ) top, left, // 転送する画像の左上座標 width, height, // 転送する画像のサイズ hMask, // マスク画像( HBITMAP ) mTop, mLeft); // マスクする画像の左上座標
ちなみに hMask が不要な場合は NULL を指定でき、 mTop と mLeft は無視されます。
Contributions