ページ 11

簡略化

Posted: 2013年9月10日(火) 12:00
by たべものやさん
画像をLoadgraphでロードするときに、1枚1枚ロードのコードを描くのが面倒です・・・

画像1枚が大きいのでLoaddivgraphでは無理です(出来はするかもしれないですが・・)

60枚使う画像があり、名前は「back_○○」となっています。(○○は数字が入る)

for文なり使い簡略化するサンプルコード、関数などを教えてください

DXライブラリとC言語でやっています。

Re: 簡略化

Posted: 2013年9月10日(火) 13:09
by softya(ソフト屋)
C言語の標準ライブラリsprintf()は分かりますか?

Re: 簡略化

Posted: 2013年9月10日(火) 17:51
by みけCAT
入る数字がランダムなら、その数字をstatic constな配列に入れておいて処理すればいいです。

Re: 簡略化

Posted: 2013年9月10日(火) 21:34
by Dixq (管理人)
softyaさんが仰っていることの答えになっちゃいますが、以下のコードをコンパイルしてみれば参考になるかと思います。

コード:

#include <stdio.h>

int main(){
	char str[32];
	for(int i=0; i<=100; i++){
		sprintf(str, "back_%03d.png", i);
		printf("%s\n", str);
	}
	return 0;
}
%03d
の0の部分は無い部分を0で埋めるという意味で、3は3桁であることを示します。

Re: 簡略化

Posted: 2013年9月10日(火) 21:36
by Dixq (管理人)
ちなみにみけCAT君が言っているのは以下のようなコードですね。

コード:

#include <stdio.h>

const static char* str[] = {
	"back_012.png",
	"back_923.png",
	"back_152.png",
	"back_523.png",
	"back_243.png",
	"back_163.png",
};

int main(){
	for(int i=0; i<6; i++){
		printf("%s\n", str[i]);
	}
	return 0;
}

Re: 簡略化

Posted: 2013年9月10日(火) 21:39
by みけCAT
Dixq (管理人) さんが書きました:ちなみにみけCAT君が言っているのは以下のようなコードですね。

コード:

#include <stdio.h>

const static char* str[] = {
	"back_012.png",
	"back_923.png",
	"back_152.png",
	"back_523.png",
	"back_243.png",
	"back_163.png",
};

int main(){
	for(int i=0; i<6; i++){
		printf("%s\n", str[i]);
	}
	return 0;
}
私の意図は少し違います。

コード:

#include <stdio.h>

const static int imageNumber[] = {12,923,152,523,243,163};

int main(){
	char buf[32];
	for(int i=0; i<6; i++){
		sprintf(str, "back_%03d.png", imageNumber[i]);
		printf("%s\n", str);
	}
	return 0;
}