のく

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
正しい書き方を教えてくれませんか?

のく

#1

投稿記事 by 正しい書き方を教えてくれませんか? » 13年前

コード:


int MapData[ 16 * 20 ] =
        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0  ,
          0, 1, 1, 0, 0, 0, 0, 0, 0, 0 ,  1, 1, 1, 1, 1, 1, 1, 1, 1, 0  ,
          0, 0, 1, 1, 1, 0, 0, 0, 0, 0 ,  1, 0, 0, 0, 0, 0, 0, 0, 1, 0  ,
          0, 0, 1, 0, 1, 0, 0, 0, 0, 0 ,  1, 1, 1, 1, 1, 1, 0, 0, 1, 0  ,
          0, 1, 1, 0, 1, 0, 0, 1, 1, 0 ,  0, 0, 0, 0, 0, 1, 0, 0, 1, 0  ,
          0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ,  0, 0, 1, 1, 1, 1, 1, 0, 1, 0  ,
          0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ,  0, 0, 1, 0, 0, 1, 1, 0, 1, 0  ,
          0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ,  0, 0, 1, 0, 0, 1, 1, 0, 1, 0  ,
 
          0, 1, 1, 1, 1, 1, 1, 1, 1, 0 ,  0, 1, 1, 0, 0, 1, 1, 0, 1, 0  ,
          0, 0, 0, 0, 1, 0, 0, 1, 0, 0 ,  0, 1, 1, 0, 0, 1, 1, 0, 1, 0  ,
          0, 0, 0, 0, 1, 0, 0, 1, 0, 0 ,  0, 1, 1, 0, 0, 1, 1, 0, 1, 0  ,
          0, 0, 0, 1, 1, 0, 0, 1, 0, 0 ,  0, 1, 1, 0, 0, 1, 1, 0, 1, 0  ,
          0, 1, 1, 1, 1, 0, 0, 1, 1, 1 ,  1, 1, 1, 0, 0, 1, 1, 0, 1, 0  ,
          0, 1, 1, 1, 1, 0, 0, 0, 0, 0 ,  0, 0, 0, 0, 0, 0, 0, 0, 1, 0  ,
          0, 1, 1, 1, 1, 0, 0, 0, 0, 0 ,  0, 0, 0, 0, 0, 0, 0, 0, 1, 0  ,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0  ,
    } ;


	GraphDraw( PlayerX, PlayerY, MapData, x, y);

}


void GraphDraw( int PlayerX, int PlayerY, int MapData[] ,int x ,int y)
{
	int Map1[55];

	LoadDivGraph( "map01.png" , 55 , 11 , 5 , 32 , 32 , Mapa1 ) ;

	for( int i = 0 ; i <= y ; i++ )
		for( int j = 0 ; j <= x ; j++ ){
			DrawGraph( j*32 , i*32 , Map1[MapData[j+i*y]] , TRUE ) ;
		}

	ScreenFlip() ;
	WaitKey() ;
}
DrawGraph( j*32 , i*32 , Map1[MapData[j+i*y]] , TRUE ) ;

のところでエラーが出てしまいます。Map1[MapData[j+i*y]]という書き方では駄目なようで
MapDataの値をに対応したMap1にある画像を書きたいところなのですが、どのように書けばよいのでしょうか?
よろしくおねがいします

box
記事: 2002
登録日時: 15年前

Re: のく

#2

投稿記事 by box » 13年前

正しい書き方を教えてくれませんか? さんが書きました: DrawGraph( j*32 , i*32 , Map1[MapData[j+i*y]] , TRUE ) ;
のところでエラーが出てしまいます。
これまで、多くのトピックにおいてたびたびお願いしておりますとおり、
「何をしたときに」「どんな」エラーが出るかを「具体的に」書いていただけませんでしょうか。
「エラーが出る」だけでは、事実上「何も言っていない」のと同じです。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

のく

Re: のく

#3

投稿記事 by のく » 13年前

box さんが書きました:
正しい書き方を教えてくれませんか? さんが書きました: DrawGraph( j*32 , i*32 , Map1[MapData[j+i*y]] , TRUE ) ;
のところでエラーが出てしまいます。
これまで、多くのトピックにおいてたびたびお願いしておりますとおり、
「何をしたときに」「どんな」エラーが出るかを「具体的に」書いていただけませんでしょうか。
「エラーが出る」だけでは、事実上「何も言っていない」のと同じです。
失礼しました
実行すると
ハンドルされない例外が 0x00EE5ECC (DXLtest.exe) で発生しました:
0xC000005: 場所 0x33742624 の読み取り中にアクセス違反が発生しました。
という画面がでます。

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: のく

#4

投稿記事 by beatle » 13年前

Map1の要素は55個、MapDataの要素は(恐らく)320個ですね。
MapDataの値に対応したMap1にある画像とは、具体的にどのように対応させたいのですか?

のく

Re: のく

#5

投稿記事 by のく » 13年前

beatle さんが書きました:Map1の要素は55個、MapDataの要素は(恐らく)320個ですね。
MapDataの値に対応したMap1にある画像とは、具体的にどのように対応させたいのですか?
MapDataの0とか1とかはとりあえず歩ける場所を書いてます
Map1はMapDataの値に合わせて描写したい画像が入ってます
こんな説明で大丈夫でしょうか・・?

box
記事: 2002
登録日時: 15年前

Re: のく

#6

投稿記事 by box » 13年前

正しい書き方を教えてくれませんか? さんが書きました:

コード:

void GraphDraw( int PlayerX, int PlayerY, int MapData[] ,int x ,int y)
			DrawGraph( j*32 , i*32 , Map1[MapData[j+i*y]] , TRUE ) ;
そのエラーが出たときの、引数xとyの値はいくつですか?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

のく

Re: のく

#7

投稿記事 by のく » 13年前

box さんが書きました:
正しい書き方を教えてくれませんか? さんが書きました:

コード:

void GraphDraw( int PlayerX, int PlayerY, int MapData[] ,int x ,int y)
			DrawGraph( j*32 , i*32 , Map1[MapData[j+i*y]] , TRUE ) ;
そのエラーが出たときの、引数xとyの値はいくつですか?
x = 16
y = 20
です
ちなみに
i = 16
でした

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: のく

#8

投稿記事 by beatle » 13年前

MapDataの添字に来ていいのは 0以上319以下の整数です。
i=16, y=20 のとき、 i*y = 320 なので添字を超えています。

のく

Re: のく

#9

投稿記事 by のく » 13年前

beatle さんが書きました:MapDataの添字に来ていいのは 0以上319以下の整数です。
i=16, y=20 のとき、 i*y = 320 なので添字を超えています。
ありがとうございました、修正すると理想的な動きをしてくれました。
本当にありがとうございました

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: のく

#10

投稿記事 by beatle » 13年前

ここのフォーラムルールなのですが,解決した場合は解決した方法や最終的なソースコードをお示しください.
後からこの掲示板を見た人の参考にするためです.

閉鎖

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