14章で

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

14章で

#1

投稿記事 by 海老天 » 16年前

14章において
image = LoadGraph( "char.png" ) ;
と記述するところがありますがここと13章の内容を組み合わせて画面を歩いて行くプログラムを作りたいと思い

int i,image[16];

for(i = 16;i > 0;i--)
{
 image = LoadGraph("e/char%d.png",i);
}

のように記述しようとしたのですがどうもうまくいきません
%dの部分にiと同じ値が入っているようにしたいのですがどうすればいいでしょうか?

box

Re:14章で

#2

投稿記事 by box » 16年前

> のように記述しようとしたのですがどうもうまくいきません

うまくいきません、とは、具体的にどうなることを指していますか?
コンパイルエラーが出たならそのときのメッセージを、
実行時エラーが出たならそのときのメッセージを、提示してください。

> %dの部分にiと同じ値が入っているようにしたいのですがどうすればいいでしょうか?

やったこともない私ごときの者が推測でものを言うのはおこがましいですが、

	char str[40];
	
	for (i = 16; i > 0; --i) {
		sprintf(str, "e:\\char%d.png", i);
		LoadGraph(str);
	}

あたりでうまくいきませんか?

海老天

Re:14章で

#3

投稿記事 by 海老天 » 16年前

返信ありがとうございます
エラーは一切出ず、ただ画像が全く読み込まれていないようです
教えていただいた通りにやってみたのですがうまくいきませんでした
LoadGraphの()の中で
printf("%d",i);
のような記述は不可能なのでしょうか?

non

Re:14章で

#4

投稿記事 by non » 16年前

いろいろ試すのはいいと思いますが、19章まで行けば、歩きますよ。

>LoadGraphの()の中で
>printf("%d",i);
>のような記述は不可能なのでしょうか?

それは、無理なので、boxさんがいわれるようにsprintfを使うのでしょう。
それで海老天さんは16枚の絵を用意したのですか。
DrawGraphも16回ウェイトを入れて繰り返したのでしょうか?

box

Re:14章で

#5

投稿記事 by box » 16年前

> int i,image[16];
>
> for(i = 16;i > 0;i--)
> {
>  image = LoadGraph("e/char%d.png",i);
> }

i が 16 のとき、配列 image[/url] の定義範囲外の領域にアクセスしています。
本題と関係あるかどうかはわかりませんが、まずいと思います。

海老天

Re:14章で

#6

投稿記事 by 海老天 » 16年前

>>nonさん
絵はchar.pngを分割して16枚用意しました
今17章を見たところ今やっている方法よりも優れた方法で行われているようですのでそちらを参考にしてみようと思います
アドバイスありがとうございました


>>boxさん
今気が付きました
ありがとうございます

閉鎖

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