ページ 11

LoadGraph~DrawGraphで画像が表示されません。

Posted: 2013年5月19日(日) 01:03
by ゆう
C言語を始めて4日目です、初めて利用させていただきます。
ゲームプログラミングの館からリンクをたどってきました。
「画像をメモリにロードして表示する。」の部分で詰まっています。
正常にコンパイル、メイクされていますが、実行してみると真っ黒なウィンドウのみで画像は表示されません。
また、SetDrawScreenやファイルパスの書き方、場所変更等、検索して対処法をいくつか試して見ましたが、全く変わりはありませんでした。
原因について教えて下さい。

使用しているのは
OS:XP
Borland C++
ソフト使用ソフト:BCC Developer(デバッカ無し)
画像はプロジェクトフォルダ\画像\にあります。

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE ); // ウィンドウに
DxLib_Init(); // DXL初期化用変数

int Handle; // データハンドル
Handle = LoadGraph( "画像\キャラクタ00.PNG" ); // ロード
DrawGraph ( 50,100,Handle,TRUE ); // 画像を描画

WaitKey(); // キー入力待ち
DxLib_End(); // DXL終了処理
return 0;
}


ちなみにLoadGraphScreenでも表示されませんでした。

Re: LoadGraph~DrawGraphで画像が表示されません。

Posted: 2013年5月19日(日) 01:48
by nil
printfDxあたりで画面にHandleの中身を出力し、
正常にロードが完了しているかどうか確かめてみてください。

Handleが-1であれば失敗していますので、
ファイルが正しい位置にあるかを再度確かめてください。

Re: LoadGraph~DrawGraphで画像が表示されません。

Posted: 2013年5月19日(日) 02:03
by らすとさん
回答ありがとうございます。
先ほどのソースのdrawgraphの行を消して
int PrintfDX(int Handle );を入力したところ、そちらもウィンドウに表示されませんでした。
一度、様々なサンプルを漁っていた時に表示されたことがあるので、設定なりなんなり何間違っているのだとは思いますが、糸口すらつかめていません。

Re: LoadGraph~DrawGraphで画像が表示されません。

Posted: 2013年5月19日(日) 03:18
by らすとさん
Printf の命令を直しました。
失礼しました。
ー1は出ておらず、表示されていたのでロードはされているようです。
問題を絞れて来たのでもう一度調べ直してみたいと思います。ありがとうございます。

Re: LoadGraph~DrawGraphで画像が表示されません。

Posted: 2013年5月19日(日) 08:15
by 雨ガエル
グラフィックスの描画先がバックバッファに設定されているのではないでしょうか。
DrawGraphの後に ScreenFlip(); を書いてみてください。
ScreenFlipはバックバッファに描画された内容をフロントバッファにコピーします。

これで描画されなかったら、描画先をバックバッファに明示的に設定してみてください。
DxLib_Init(); のあとに SetDrawScreen( DX_SCREEN_BACK ) ; です。

(参考までに)フロントバッファに直接描かずに、バックバッファに描いてからコピーする。という方法をダブルバッファリングといいます。
参考URL http://homepage2.nifty.com/natupaji/DxL ... ture3.html

Re: LoadGraph~DrawGraphで画像が表示されません。

Posted: 2013年5月19日(日) 12:25
by softya(ソフト屋)
ゲームプログラミングの館のままのコードで表示されるはずです。
なので、なにか間違いが有るはずです。

「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ] 1.1章 DXライブラリが使える環境を整えよう」
http://dixq.net/g/01_01.html
こちらのプロジェクトをダウンロードしたまま使ってみてください。
そして、自分のものと違う所を探してみましょう。

Re: LoadGraph~DrawGraphで画像が表示されません。

Posted: 2013年5月19日(日) 16:07
by らすとさん
回答ありがとうございます。

雨ガエル様
どちらも試しましたが、状態は変わらず、黒い画面でした。
しかし。貼って頂いたサイトを見る限り、後々必要になりそうなことでしたので
参考にさせていただきます。
ありがとうございます。
Softya様
そちらのプロジェクトをそのまま使おうと思いましたが、そのままでは利用できず、
test.cppを直接開きました。
そしてコンパイル、メイクしてみたところ、メイクの部分でエラーが表示されました。
その後、自分のプロジェクトにソースをコピー後、実行すると真っ黒な画面が表示されます。
混乱してきたので、編集ソフトの方から原因を探ってみたいと思います。

Re: LoadGraph~DrawGraphで画像が表示されません。

Posted: 2013年5月19日(日) 16:19
by softya(ソフト屋)
らすとさん さんが書きました:回答ありがとうございます。

雨ガエル様
どちらも試しましたが、状態は変わらず、黒い画面でした。
しかし。貼って頂いたサイトを見る限り、後々必要になりそうなことでしたので
参考にさせていただきます。
ありがとうございます。
Softya様
そちらのプロジェクトをそのまま使ってみたところ、なぜかエラーが表示されました。
その後、自分のプロジェクトにソースをコピー後、実行すると真っ黒な画面が表示されます。
あっと分かりました。
BCC Developerの場合に限定ですが、画像はexeのあるフォルダに置いてください。

コード:

あと間違いとして。
LoadGraph( "画像\\キャラクタ00.PNG" ); //エスケープシーケンス として正しい書き方。
か
LoadGraph( "画像/キャラクタ00.PNG" );  //¥マークを使わない。
となります。

Re: LoadGraph~DrawGraphで画像が表示されません。

Posted: 2013年5月19日(日) 16:29
by らすとさん
Softya様
表示されました!
BCC Developerの方で見落としてしまっていたんですね。
\単品ではつかわないのですね、コード書き方まで教えていただいて・・・
本当に助かりました。ありがとうございます。