プログラミングははじめたばかりで、
龍神録プログラミングの館を参考にさせてもらいながらゲームを作っています
抜けている部分があるかもしれませんがお許し下さい
VS2013/C++/dxlib
ステージのデータの入ったcsvファイル"rc/data/stage/test.csv"
を開こうとすると何故か応答なしになってしまいます。
Scene_playクラスがBossクラスをメンバに持っています
Scene_playのコンストラクタで試しにファイルを開いてみると正常に開けます。
ですぐに閉じてBossをnewします。
しかしBossのコンストラクタで開こうとするとFileRead_open();で応答なしになってしまいます。
エラーのNULLも返されません。
この問題はVS2013の「デバッグ無しで開始」の時のみ起こり、
「デバッグ開始」では起こらず、全て正常に動きます
自前でログファイル.txtに出力してみてもBossのロードでブッツリです
4970864 --GLog::ログ初期化完了
0 --4970865
0 --Variable::Dx_Lib初期化終了//DxLib_Init();
1529 --Variable::メインループに入ります
1529 -----メインループ始まり---
1530 -----シーン切り替え---
1530 --シーン::プレイ
1530 --Play::初期化開始
1530 --Play::ステージファイルテスト
1530 --rc/data/stage/test.csv-OPEN
1531 --rc/data/stage/test.csv-CLOSE
1531 --Play::ステージファイルテスト成功
1531 --Board::初期化開始
1560 --Board::初期化終了
1561 --Player::初期化開始
1564 -- Shot_Ply::初期化開始
1566 -- Shot_Ply::初期化終了
1566 --Player::初期化終了
1566 --Boss:初期化開始
1580 -- Shot_Boss::初期化開始
1580 -- Shot_Boss::初期化終了
1580 --Boss::ステージファイルロード
1580 --rc/data/stage/test.csv-OPEN//この後にint fp=FileRead_open("rc/data/stage/test.csv")で応答なし
わかりづらいかも知れませんがご享受ください。
自分が簡単なミスをしているのかもしれませんん、よろしくお願いしますm(_ _)m
FileRead_openで応答なしになってしまいます
Re: FileRead_openで応答なしになってしまいます
Scene_playのコンストラクタならokで、axis さんが書きました:Scene_playクラスがBossクラスをメンバに持っています
Scene_playのコンストラクタで試しにファイルを開いてみると正常に開けます。
ですぐに閉じてBossをnewします。
しかしBossのコンストラクタで開こうとするとFileRead_open();で応答なしになってしまいます。
エラーのNULLも返されません。
Bossのコンストラクタで駄目ならば、まず疑うのはBossの実装ですね。
というわけで、その部分のソースを掲示してください。
一番いいのは、プロジェクトをzipに圧縮して
ダウンロードできるようにしてリンクを張ることです。
そうすれば、より適切な助言をもらえると思いますよ。
追記:ユーザーさんなのであればログインして、ここの掲示板に直接アップしましょう。
(ただしサイズ制限があるので注意)
written by へにっくす
Re: FileRead_openで応答なしになってしまいます
回答有難うございます!
確かにそうですね・・・
rcファイルは二次配布禁止のものが多いので読みづらいコードだけですが
https://www.dropbox.com/s/w9mw2w8n6yjcaaz/code.zip?dl=0
お願い致します
確かにそうですね・・・
rcファイルは二次配布禁止のものが多いので読みづらいコードだけですが
https://www.dropbox.com/s/w9mw2w8n6yjcaaz/code.zip?dl=0
お願い致します
ビギナーです。
Re: FileRead_openで応答なしになってしまいます
ログを使って調べていたところ新たな事が分かりました。
応答なしになるのはBossまたはEnemyクラスでFileRead_close();
したあとの次のファイルにアクセスする文らしいです。(画像またはファイル)
さっきまではEnemyをnewしてその次にBossをnewしたため、FileRead_open();が止まったようです。
newの順番を変えたら今度はPlayerクラスのコンストラクタで絵をロードする関数で止まっています。
同じcsvファイルを2回読み込んでいるのが原因でしょうか
応答なしになるのはBossまたはEnemyクラスでFileRead_close();
したあとの次のファイルにアクセスする文らしいです。(画像またはファイル)
さっきまではEnemyをnewしてその次にBossをnewしたため、FileRead_open();が止まったようです。
mPlayer = new Player(this);
mBoard = new Board;
mEnmMgr = new EnmMgr(this);
mBoss = new Boss(this);
ビギナーです。
Re: FileRead_openで応答なしになってしまいます
ざっと見た感じですが、同じcsvファイルを指定しているのが原因ぽいですね。
Boss/Enumyでも使っているのなら、Stageクラスでcsvを開き、そのハンドルfpをBoss/Enumyに渡すようにすればよいのではないでしょうか。
そうすれば各クラスでいちいち開く/閉じるのペアを書く必要はなくなると思うのですが。
(その代り、読み込んだ後のファイルの位置を考慮しないといけませんが・・・)
というか、私なら、test.csvで得たデータはStageクラスかまたは別クラス(データ管理クラス?)で保持しておき、
Boss/Enumyでそのデータ管理クラスから得るようにすると思います。
データを一つのファイルにするなら、専用のクラスを作った方がいいと思いますよ。
Boss/Enumyでも使っているのなら、Stageクラスでcsvを開き、そのハンドルfpをBoss/Enumyに渡すようにすればよいのではないでしょうか。
そうすれば各クラスでいちいち開く/閉じるのペアを書く必要はなくなると思うのですが。
(その代り、読み込んだ後のファイルの位置を考慮しないといけませんが・・・)
というか、私なら、test.csvで得たデータはStageクラスかまたは別クラス(データ管理クラス?)で保持しておき、
Boss/Enumyでそのデータ管理クラスから得るようにすると思います。
データを一つのファイルにするなら、専用のクラスを作った方がいいと思いますよ。
written by へにっくす