初めて質問させてもらいます。
c言語は超初心者です。
自分はDxLidで音ゲーを作ろうとおもって、なんとなく曲選択画面のようなものを作りましたが、
例えば譜面フォルダにあるテキストファイルを全部読み込んで表示する、のようなものと
よくある、譜面(テキスト)ファイルの中に #BPM 120 のような指示を書いてその値を読み込む、
という方法がわからないです。
わからないので曲情報は全部iniファイルで実装しようと思っていたのですが、ここに質問したらわかるかな?と思い質問させていただきました。
ファイルの読み込みについて
Re: ファイルの読み込みについて
[quote="むつ" id=3,18619#postingbox,141301]...超初心者です。...曲選択画面のようなものを作りましたが、...テキストファイルを全部読み込んで表示する...よくある、譜面(テキスト)ファイルの中に #BPM 120 のような指示を書いてその値を読み込む....曲情報は全部でiniファイル実装しようと思っていたのです..[/quote]
質問の内容を まず 整理しないとよくわからないのですが [ iniファイル実装 ] は サンプルぐらいは は 出来ているのでしょうか?。
表題から ファイル の 読み込み が 焦点の ように 思えますが ini ファイル の読み込み は出来ている(バイナリなので)。
「テキストファイルを全部読み込は」 ちょっと と いう事 なのでしょうか。(自分もそういう状態なので)(バイナリでの読み方はこの前ここの質問の答えの中で コードをみせていただいてわかりました)
質問の内容を まず 整理しないとよくわからないのですが [ iniファイル実装 ] は サンプルぐらいは は 出来ているのでしょうか?。
表題から ファイル の 読み込み が 焦点の ように 思えますが ini ファイル の読み込み は出来ている(バイナリなので)。
「テキストファイルを全部読み込は」 ちょっと と いう事 なのでしょうか。(自分もそういう状態なので)(バイナリでの読み方はこの前ここの質問の答えの中で コードをみせていただいてわかりました)
Re: ファイルの読み込みについて
テキストファイルを全部読み込む というのは、
太鼓さん次郎のように、完全なファイルパスを指定せずに(?)複数読み込む、ということなんですが
それをうまく説明できないのです。
太鼓さん次郎のように、完全なファイルパスを指定せずに(?)複数読み込む、ということなんですが
それをうまく説明できないのです。
Re: ファイルの読み込みについて
"太鼓さん次郎のように、完全なファイルパスを指定せずに(?)複数読み込む"
というのが わかってしまえば 簡単だと いう きがするので
”例えば譜面フォルダにあるテキストファイルを全部読み込んで表示する、のようなものと
よくある、譜面(テキスト)ファイルの中に #BPM 120 のような指示を書いてその値を読み込む”
と 関連がありますか。 ゲームのことは初心者 なので どなたか 詳しい方には わかるかも知れません。 もう すこし 思いつくことが 何かないですか。もう 少し のような 気は します。
というのが わかってしまえば 簡単だと いう きがするので
”例えば譜面フォルダにあるテキストファイルを全部読み込んで表示する、のようなものと
よくある、譜面(テキスト)ファイルの中に #BPM 120 のような指示を書いてその値を読み込む”
と 関連がありますか。 ゲームのことは初心者 なので どなたか 詳しい方には わかるかも知れません。 もう すこし 思いつくことが 何かないですか。もう 少し のような 気は します。
Re: ファイルの読み込みについて
例えば 関連 する ような ホームページ とか?
http://hitkey.nekokan.dyndns.info/bmse_ ... 5609.shtml
http://hitkey.nekokan.dyndns.info/bmse_ ... 5609.shtml
Re: ファイルの読み込みについて
取り合えず読み込むことだけを考えると
極端にiniファイルから情報を得てファイル開きたい場合はこうするのかな。。。
思ったんだけど、専用のテキストファイルからファイル名をもらうのもいいじゃんとか思ったので一応解決解決ですね。
ありがとうございました。
#include "DxLib.h"
#include <stdio.h>
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE),SetGraphMode( 1280 , 720 , 32 ),SetAlwaysRunFlag(TRUE),DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
char neam[256];
char neam2[256];
int neam0=GetPrivateProfileString("tast","name","tast",neam,sizeof(neam),("tast.ini"));//iniから文字列をもらう。
FILE *fp;//ファイルポインタ??
int a=sprintf(neam2,"%s.txt",neam);//iniからもらった文字列に.txtを追加
if ((fp = fopen(neam2, "r")) == NULL) {
DxLib_End(); // DXライブラリ終了処理
return 0;
}
WaitKey(); // キー入力待ち
DxLib_End(); // DXライブラリ終了処理
return 0;
}
思ったんだけど、専用のテキストファイルからファイル名をもらうのもいいじゃんとか思ったので一応解決解決ですね。
ありがとうございました。
Re: ファイルの読み込みについて
[追記]ここの http://zmy10.blog110.fc2.com/blog-entry-2233.html 話 だったのですね。( iniファイル で ルックアップ テーブル を 作れば いいと思います。)
Re: ファイルの読み込みについて
一例として、むつ さんが書きました:例えば譜面フォルダにあるテキストファイルを全部読み込んで表示する、のようなものと
- ファイル検索API(WindowsならFindFirstFile→FindNextFile→FindClose)でフォルダ内のファイル名を取得する
- 取得したファイルの情報を読み込み、std::vectorかなんかに格納する
- ファイルの検索が終わったら、格納した情報をもとに表示する
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ファイルの読み込みについて
C++ で vector が使えるのなら イテレータ を 工夫すれば 配列の拡張なので テーブルを 作るのが 楽になると おもいます。
(曲名 だけ で 相対パス が 見つかると 前提)
(曲名 だけ で 相対パス が 見つかると 前提)