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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ゆう

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

#1

投稿記事 by ゆう » 7年前

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でも表示されませんでした。

nil
記事: 428
登録日時: 8年前

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

#2

投稿記事 by nil » 7年前

printfDxあたりで画面にHandleの中身を出力し、
正常にロードが完了しているかどうか確かめてみてください。

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

らすとさん
記事: 5
登録日時: 7年前
住所: 福岡

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

#3

投稿記事 by らすとさん » 7年前

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

らすとさん
記事: 5
登録日時: 7年前
住所: 福岡

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

#4

投稿記事 by らすとさん » 7年前

Printf の命令を直しました。
失礼しました。
ー1は出ておらず、表示されていたのでロードはされているようです。
問題を絞れて来たのでもう一度調べ直してみたいと思います。ありがとうございます。

アバター
雨ガエル
記事: 34
登録日時: 7年前
住所: 新潟
連絡を取る:

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

#5

投稿記事 by 雨ガエル » 7年前

グラフィックスの描画先がバックバッファに設定されているのではないでしょうか。
DrawGraphの後に ScreenFlip(); を書いてみてください。
ScreenFlipはバックバッファに描画された内容をフロントバッファにコピーします。

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

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

#6

投稿記事 by softya(ソフト屋) » 7年前

ゲームプログラミングの館のままのコードで表示されるはずです。
なので、なにか間違いが有るはずです。

「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ] 1.1章 DXライブラリが使える環境を整えよう」
http://dixq.net/g/01_01.html
こちらのプロジェクトをダウンロードしたまま使ってみてください。
そして、自分のものと違う所を探してみましょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

らすとさん
記事: 5
登録日時: 7年前
住所: 福岡

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

#7

投稿記事 by らすとさん » 7年前

回答ありがとうございます。

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

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

#8

投稿記事 by softya(ソフト屋) » 7年前

らすとさん さんが書きました:回答ありがとうございます。

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

コード:

あと間違いとして。
LoadGraph( "画像\\キャラクタ00.PNG" ); //エスケープシーケンス として正しい書き方。
か
LoadGraph( "画像/キャラクタ00.PNG" );  //¥マークを使わない。
となります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

らすとさん
記事: 5
登録日時: 7年前
住所: 福岡

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

#9

投稿記事 by らすとさん » 7年前

Softya様
表示されました!
BCC Developerの方で見落としてしまっていたんですね。
\単品ではつかわないのですね、コード書き方まで教えていただいて・・・
本当に助かりました。ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る