エクセルデータの読み込みについて。
龍神録様を参考に現在マップデータの読み込みに挑戦しております。
しかしエクセルデータを数字ではなくdefineで設定した文字列にした場合、どのように読み込めば良いか分からず質問致しました。
過去の質問を拝見した所、文字列の読み込みに関しては
strcpy( char型の配列へのポインタ , 読み込んだ文字列 );
という形を取れば良いという事なのですが・・・。
例えば
#define BANPEI -1
となっていたとして
map_array[0][0] = -1;
と代入したいのですが、これを
map_array[0][0] = BANPEI; と読み込ませるにはどういった方法をとれば良いのでしょうか?
map_arrayはint型のため、上記したstrcpyでは扱えないですよね。
取り敢えず今はエクセルデータを一文字づつ読み込み、文字配列にBANPEIという文字を読み込ませている段階です。
毎度毎度説明がかなり下手で申し訳御座いませんが、宜しくお願いしますm(_ _)m
[追記]
エクセルデータを下手にBANPEIなどと文字化せず、-1など数字にすれば出来るのですが、これで良いものでしょうか?
なるべくマジックナンバーは無くすべきだと思い、現在試行錯誤しております。
エクセルデータ読み込みについて
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: エクセルデータ読み込みについて
#defineで定義された名前はプリプロセッサで処理されるためコンパイル・リンク・実行時には消滅して置き換わり済みです。なので実行プログラムでは参照する方法がありません。
あとは過去に似た話題があったのでリンクしておきます。
「csvファイルから変数を読み込む事は可能でしょうか • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?t=10409&p=84054
【補足】
上を読んだ前提として答えれば、文字列を読み込む→文字列から定数に変換する関数で定数に変換→配列に格納。
あとは過去に似た話題があったのでリンクしておきます。
「csvファイルから変数を読み込む事は可能でしょうか • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?t=10409&p=84054
【補足】
上を読んだ前提として答えれば、文字列を読み込む→文字列から定数に変換する関数で定数に変換→配列に格納。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: エクセルデータ読み込みについて
もっと踏み込んで答えるとExcelでマップエディットは無理があるので通常は専用のマップエディタを作ります。
コレジャナイ さんのゲームはクオータービューだったはずですから専用マップツールが無いと辛いと思います。※DXライブラリで作成できます。
そうした場合、直接数値をデータ上は持っていても問題ないとおもいます。
専用マップツールとゲームプログラムは共通するヘッダファイルで#define値やconst値を共有します。
コレジャナイ さんのゲームはクオータービューだったはずですから専用マップツールが無いと辛いと思います。※DXライブラリで作成できます。
そうした場合、直接数値をデータ上は持っていても問題ないとおもいます。
専用マップツールとゲームプログラムは共通するヘッダファイルで#define値やconst値を共有します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
コレジャナイ
Re: エクセルデータ読み込みについて
返信有難う御座います。
マップエディタを作ってみたいと思います。
ただ色々調べては見たのですが、自分専用のマップエディタを作る場合はどのようにして作れば良いのでしょうか・・・?
開発支援ツールというものを一切作った事がないために、全く分かりませんorz
流れとしては
マップエディタモードをプログラムで作る?
マップエディタモードで様々なマスのメニューを右辺りに表示させる
選択されたマスをマウスが指している場所に表示させる。
マウスがクリックされたら確定
以上の流れが全て完了したら、マップの値を何かのファイル?に保存させる。
このような感じであってますでしょうか・・・?
マップエディタを作ってみたいと思います。
ただ色々調べては見たのですが、自分専用のマップエディタを作る場合はどのようにして作れば良いのでしょうか・・・?
開発支援ツールというものを一切作った事がないために、全く分かりませんorz
流れとしては
マップエディタモードをプログラムで作る?
マップエディタモードで様々なマスのメニューを右辺りに表示させる
選択されたマスをマウスが指している場所に表示させる。
マウスがクリックされたら確定
以上の流れが全て完了したら、マップの値を何かのファイル?に保存させる。
このような感じであってますでしょうか・・・?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: エクセルデータ読み込みについて
基本的な流れは、それで合っています。コレジャナイ さんが書きました:マップエディタモードで様々なマスのメニューを右辺りに表示させる
選択されたマスをマウスが指している場所に表示させる。
マウスがクリックされたら確定
以上の流れが全て完了したら、マップの値を何かのファイル?に保存させる。
マップエディタモードを設けるよりは別プログラムにしたほうがシンプルに済むと思いますよ。
マップエディタは一種のペイントツールですので、マップパーツを選ぶ機能の他にペイントモードや操作アイコンも有ったほうが良いです。
つまり、置く・消す・塗りつぶすなどのペイントモードや保存などの操作アイコンですね。
簡単なペイントツールだと、操作アイコンとペイントモード選択アイコンとマップパーツの一覧があれば良いでしょう。
あと、マップサイズの設定入力なども必要だと思います。
イベントやキャラ配置、マップの上に木や建物を置くなど段々と拡張が必要になっていく気がしますけどね。
上以外に考えられる要素:進入不可、移動コスト、アニメーション設定、地形高さパラメータ、その他の地形効果(毒沼?)
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
コレジャナイ
Re: エクセルデータ読み込みについて
返信有難う御座います。
予想以上に実装がかなり大変そうですね・・・・・。
本体よりもマップエディタの方が優れてしまいかねない状態なので、取り敢えずはマップはエクセルデータで数字読み込みの方法で試してみたいと思います。
有難う御座いましたm(_ _)m
予想以上に実装がかなり大変そうですね・・・・・。
本体よりもマップエディタの方が優れてしまいかねない状態なので、取り敢えずはマップはエクセルデータで数字読み込みの方法で試してみたいと思います。
有難う御座いましたm(_ _)m
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: エクセルデータ読み込みについて
最終的にどちらが作成や調整が楽かで決めるべきことですね。
1から2マップぐらいならExcelでも問題はないでしょう。
Excelでやるにしても
1から2マップぐらいならExcelでも問題はないでしょう。
Excelでやるにしても
までやりはじめたらExcelで無理が出てくると思いますので、その時考えれば良いんじゃないでしょうか。イベントやキャラ配置、マップの上に木や建物を置くなど段々と拡張が必要になっていく気がしますけどね。
上以外に考えられる要素:進入不可、移動コスト、アニメーション設定、地形高さパラメータ、その他の地形効果(毒沼?)
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。