Appearance
第08回 画像リソースの管理
3 / 4 表示矩形へ画像を描く
このステップの目的
画像の素材寸法とゲーム上の表示・命中範囲を分けたまま画像を差し替える
表示サイズはEntityが決める
ImageManager::Draw()は画像IDと表示矩形を受け取ります。 元画像のピクセル寸法をそのまま移動や命中判定へ使わず、GameTuning.hの表示矩形を利用します。
ImageManager.cppcpp
void ImageManager::Draw(Id id, const Rect& rect) const
{
int handle = handles[ToIndex(id)];
DrawExtendGraph(
static_cast<int>(rect.x),
static_cast<int>(rect.y),
static_cast<int>(rect.x + rect.width),
static_cast<int>(rect.y + rect.height),
handle,
TRUE);
}画像を別の大きさへ交換しても、表示矩形と命中矩形は変えません。 見た目の調整が必要な場合はDrawRectだけを変更し、命中範囲と混ぜないようにします。
チェックリスト
- 画像の素材寸法を命中判定へ使っていない
-
ImageManagerへ表示矩形を渡している - 画像差し替え後もEntityの中心と命中範囲を維持している