アクションプログラムでのマップチップの読み込みについて

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

アクションプログラムでのマップチップの読み込みについて

#1

投稿記事 by らぁ » 15年前

DXライブラリを用いてアクションゲームを作成してます。C言語は一応3年位触ってます。
色々なサイトを参考にマップチップを読み込むソースを書いてみましたが、上手くロード出来てないようです。
みなさんの意見をお聞かせ下さい。

以下ソース
void LoadMap( _MapData *Mapdata )
{
    int fp;                            //ファイルポインタ
    const int maxstrnum = 700 ;            //読み込む最大行内文字数
    char inputstr[maxstrnum] ;            //読みとった文字列を格納する変数
    char inputc;                            //読みとった文字が改行やEOFか判定する変数
    int i = 0 , j = 0 , num ;
    fp = FileRead_open( "maptest.csv" );
    if( ( fp = FileRead_open( "maptest.csv" ) ) == NULL )    
    {
        printfDx( "ファイルのオープンに失敗しました。\nデータファイルの位置やファイル名を確認しましょう。" ) ;
        WaitTimer( 3000 ) ;
        DxLib_End();    //終了処理
    }
    while(1)
    {
        for( num = 0 ; num < maxstrnum ; num++ )
        {
            inputstr[num] = inputc = FileRead_getc( fp ) ;        //1文字取得する
            
            //スラッシュがデータにあるとき
            if( inputc == '/' )
            {
                while( FileRead_getc( fp ) != '\n' ) ;            //改行までループ
                num = -1 ;
                continue;
            }
            //カンマか改行なら
            if( inputc == ',' || inputc == '\n' )
            {
                inputc = '\0' ; //そこまでを文字列とする
                break;
            }
            //ファイルの終わり
            if( inputc == EOF )
            {
                goto EXFILE ;        //終了
            }
        }

        //int型の数値を読み取る場合
        Mapdata->mapdata[j] = strtol( inputstr , NULL , 10 ) ;  //読みとった文字を数字に変換(3番目の引数は10進数を使用するため10)
        j++;

        if( j == MAP_WIDTH )
        {
            j = 0 ;
            i++;
        }
    }
    EXFILE:
    FileRead_close( fp ) ;
}

環境はVS2008Proです。 よろしくお願いします。
添付ファイルはマップのCSVです 画像

ideyan

Re:アクションプログラムでのマップチップの読み込みについて

#2

投稿記事 by ideyan » 15年前

試してないのでわかりませんが
inputstrの最後にNULLを入れてみてはどうでしょうか?
inputcに代入されてますがこれでは意味がないような気が。。。

閉鎖

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