Rectに画像を表示したい
初心者  2024/03/12(Tue) 15:06
サンプルのブロック崩しを一部改造して
ブロックを色ではなく画像を表示したいと思っているのですが
うまくブロックの画像を表示することができません。

どなたかご教授いただけないでしょうか
記事編集
Reputeless  2024/03/13(Wed) 09:45
Siv3D Dsicord サーバにて同じ質問をいただいて回答したので、転記します。
====

背景が単色であれば、破壊済みブロックを背景色で描画すれば簡単に実現できます。
```cpp
# include <Siv3D.hpp>

void Main()
{
Scene::SetBackground(ColorF{ 0.6, 0.8, 0.7 });

const Texture texture{ U"example/windmill.png" };

// 残っているブロック
Array<Rect> rects;

for (int32 y = 0; y < 4; ++y)
{
for (int32 x = 0; x < 6; ++x)
{
rects << Rect{ (x * 80), (y * 80), 80 };
}
}

// 破壊済みのブロック
Array<Rect> removedRects;

while (System::Update())
{
for (auto it = rects.begin(); it != rects.end();)
{
// ブロックをクリックしたら
if (it->leftClicked())
{
// 破壊済みの配列に追加する
removedRects << *it;
it = rects.erase(it);
}
else
{
++it;
}
}

texture.draw();

// ブロックの枠線を描画する
for (const auto& rect : rects)
{
rect.drawFrame(1, 0);
}

// 破壊済みのブロックを背景色で描画する
for (const auto& rect : removedRects)
{
rect.draw(ColorF{ 0.6, 0.8, 0.7 });
}
}
}
```
そうでない場合は適切なテクスチャ領域 `texture(x, y, w, h)` を適切な `Rect` に貼り付けて描画してください(チュートリアル 25.15)
背景が単色の場合(添付サンプルコード)の実行結果 ↓



編集
件名
Re: Rectに画像を表示したい
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -