- ベストアンサー
描画出力についての質問
- 画面に線や円の描画ができないです
- 指定した位置に線、円、四角形等を描画する方法を教えてください
- 参考にしたサイトはhttp://l.huu.cc/g/#0です
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
間が開いてしまいもうしわけありません。 DxLibのソースも見てみましたが、DxLib自体でそれほど複雑なことをしているわけではなく、 DirectXのところで何かあるのだとは思いますが、DirectXはあまり詳しくないので 今のところこれという情報はありません。 プログラムを、円のみや線のみのものにして試してみても同じように描画されないままでしょうか? 色や半径などを適当に変えながら試しててみてください。 もし円だけ(線だけ)で現象が発生するのなら、 ライブラリの作者にレポートするのがよろしかろうと思います。 DXライブラリ置き場 HOME http://homepage2.nifty.com/natupaji/DxLib/index.html ここから掲示板にいけます。
その他の回答 (5)
- sakusaker7
- ベストアンサー率62% (800/1280)
#2でビデオカードのドライバ等の確認が提案されていますが、 そちらはどうでしたでしょう? DirectXが原因とは言い切れませんが、差し支えなければ ・お使いのPCのメーカーと型番。 ・診断ツールででてきたディプレイ関連の上の中で、デバイスのメーカーと種類、 ドライバとmini VDD、VDDの名称を教えてください。 DirectXの機能のところにある DirectDrawのテストを実行したときに何か問題は出ませんか? #ハードが壊れたりはしないはずなので安心してください もしテスト実行のボタンが押せない状態ならその旨をお知らせください。 Direct3Dは#4の補足からするとダメっぽいですが、 今回描画しようとしているのは3Dは多分関係ないですよねえ。
補足
DirectDrawのテストを実行したら問題はなく すべてのテストが問題なく終了しました。 (コンピューターの指示通りに進めて問題なく終了) 診断ツールの[ディスプレイ]のところに書いてあるのであれば(正確な調べ方を知りません。すいませんm(_ _)m)以下の通りです。 [デバイス] デバイスの名前 :ATI RADEON XPRESS 200 Seres デバイスメーカー名:ATI Technologies INC. [ドライバ] メインドライバ:ati2dvag.dll miniVDD :ati2mtag.sys VDD :利用不能
- sakusaker7
- ベストアンサー率62% (800/1280)
なんともどうしたものか思いつかないのですが、 とりあえず スタート→ファイル名を指定して実行 を開いて dxdiag と入力して実行してみてください(DirectXの診断ツールです)。 使用しているグラフィックボードだとか、DirectXのバージョン等々でますので どこかが「問題あり」になっていないか確かめてみてください。 わたしが試したのは Windows 2000のマシンなので DirectXのバージョンは8です。
補足
今入っているのはDirectX9.0cです 診断ツールを起動したのですが 診断ツールの[ディスプレイ]欄の [デバイス] メモリ合計が利用不可 [ドライバ] VDDが利用不可 DDIが不明 [DirectXの機能] DirectDrawアクセラレータが利用不可 Direct3Dアクセラレータが利用不可 AGPテクスチャアクセラレータが利用不可 [注意] ・Direct3D の機能は利用できません。ドライバが製造元によって提供されている最新のものであることを確認してください。 となっています。 問題ありという表記はなかったのですが この辺りが怪しいかと思い載せました。 このほかに記載する情報があればいってください よろしくお願いします
- PROMETHEUS
- ベストアンサー率58% (31/53)
ScreenFlip()を WaitKey()の前に入れると表示されるかもしれません。
お礼
ご指摘の通りに #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode(TRUE) ; if( DxLib_Init() == -1) return -1; int white,red,g_blue; white = GetColor(255,255,255); red = GetColor(255,0,0); g_blue = GetColor(0,255,255); DrawLine(10,10,630,10,white); DrawBox(10,50,310,100,g_blue,false); DrawBox(10,150,310,200,g_blue,true); DrawCircle(500,300,100,red,true); ScreenFlip();←ここですよね? WaitKey(); DxLib_End(); return 0; } としたのですがやはり表示できませんでした ほかの方からの指摘された部分についても確認してみます ご回答ありがとうございました
私の環境でも4つ表示されています。 DirectXを使用している場合、ビデオカードのドライバやDirectXのランタイムが古かったりすると、こういう事が起きやすいです。
お礼
たしかに、ビデオカードのドライバやランタイムが古いのは気がつきませんでした そのあたりを調べてみます
- sakusaker7
- ベストアンサー率62% (800/1280)
試しに手元のコンパイラ(VC++ 7.1)で試してみましたが、 線分も円もきちんと描画されましたよ? お使いの環境をもう少し詳しく書いていただけませんか?
補足
使っているソフトはMicrosoft Visual C++ で 200Xとかは書かれていないので古いタイプだと思います。 OSはWindows XP Pro Ver2002 SP2 です。
お礼
線・円・四角それぞれ一つずつで試してみたいと思います 問題があるようならご指摘にあるとおり対応していきたいと思います ありがとうございました