- 締切済み
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); で表示したら画面左上にうまく表示されました。 初心者なんであまりうまく説明できないんでかなりわかりにくいかもしれませんが、わかる方よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- isle
- ベストアンサー率51% (77/150)
背景の画像を読み込んだテクスチャのサイズは640x640になってますか?
お礼
問題解決しました。 Direct3Dでは幅と高さが共に2のn乗のサイズのテクスチャしか作ることができないっていうのをすっかり忘れてました。 なので256×256のテクスチャに分割してやってみたら成功しました。 こんなことで質問してしまいすいません。答えてくださってありがとうございました。又1つ勉強になりました(^^)
補足
確実に640×640になっています。 ペイントで作成したBMP形式です。 背景画像ならJPEGの方がいいかもしれませんが扱い方がまだわからないんでとりあえずBMPでやってます。