電子書籍の厳選無料作品が豊富!

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);
で表示したら画面左上にうまく表示されました。

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

A 回答 (1件)

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

この回答への補足

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

補足日時:2007/09/11 02:22
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/11 03:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!