こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

DirectXで画像表示

DirextXでゲームを作ってるんですがわからないことがあるんで教えてください。
背景として640×640(ピクセル)の画像を表示したくて(ウィンドウはサイズ640,640で作成)

RECT from;
D3DXVECTOR3 to;
D3DCOLOR color;
from = makeRect(0,0,640,640);
to = D3DXVECTOR3(0,0,0);
color = D3DCOLOR_ARGB(255,255,255,255);

if(g_pTexture != NULL)
g_pSprite->Draw(g_pTexture, &from, NULL, &to, color);

RECT makeRect(int x, int y, int w, int h) {
RECT box;
box.left = x;
box.top = y;
box.right = w;
box.bottom = h;
return (box);
}

//g_pTexture = D3DXCreateTextureFromFileEx関数で作成したテクスチャオブジェクト。
//g_pSprite = スプライトオブジェクト。

大体こんな感じの流れで背景画像を表示したらウィンドウ全体に画像の一部分だけが拡大されて表示されました。なぜ画像全体がうまく表示されないんでしょうか?
例えば64×64のキャラクタ画像を
from = makeRect(0,0,64,64);
to = D3DXVECTOR3(0,0,0);
で表示したら画面左上にうまく表示されました。

初心者なんであまりうまく説明できないんでかなりわかりにくいかもしれませんが、わかる方よろしくお願いします。

投稿日時 - 2007-09-11 01:07:09

QNo.3334566

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

背景の画像を読み込んだテクスチャのサイズは640x640になってますか?

投稿日時 - 2007-09-11 02:06:05

補足

確実に640×640になっています。
ペイントで作成したBMP形式です。
背景画像ならJPEGの方がいいかもしれませんが扱い方がまだわからないんでとりあえずBMPでやってます。

投稿日時 - 2007-09-11 02:22:20

お礼

問題解決しました。
Direct3Dでは幅と高さが共に2のn乗のサイズのテクスチャしか作ることができないっていうのをすっかり忘れてました。
なので256×256のテクスチャに分割してやってみたら成功しました。
こんなことで質問してしまいすいません。答えてくださってありがとうございました。又1つ勉強になりました(^^)

投稿日時 - 2007-09-11 03:29:54

あなたにオススメの質問