2011-08-12 5 views
1

私はC++とDirectXでRPGゲームを作っています。私は矛盾した答えを得ています。私のコードでどうすればいいですか?

ゲームのすべてのデータを.txtファイルに保存し、 `ifstream/ofstream 'を使って読み書きします。今のところ私はクリーチャーの状態を話すときにはうまくいっていますが、私はクリーチャーの名前について一緒にハックしていますが、これは問題になっています。

文字列をtxtファイルに保存して読むことができますが、私はそれらを使用する際に問題があります。単一の言葉のために私はハックを持っていますが、今私は文字がお互いに話しているストーリーラインまでです、それは本当の問題です。

私はgamedevelopment.stackexchangeで画面にテキストを配置する方法を尋ねましたが、D3Dtextを使用するように言われましたが、Cスタイルの文字列しか受け付けず、テキストファイルからC++の文字列しか読み込めません。これは大きな問題であり、私は元に戻って、これが整理されるまで進歩が見られないために必要なものを再要因させて喜んでいます。

は、だから今、私が質問の束を持っていると私は、最初に依頼することを知らない:私はグラフィックスのような文字を描画する方法をしたい

  1. 。私はこれがD3Dtextのことであると言われましたが、もし私が誰かが知っているかどうかについての情報が必要なだけであれば、それを私の自己に実装したいのですか?

  2. いわゆる専門家のようにD3Dtextを使用する場合は、Cスタイルの文字列を使用する必要があります。 C言語の文字列をC++の文字列に変換するにはどうすればいいですか?私は今、メソッドを持っていますが、それは新しい文字列ごとに演算子を削除する必要があり、複雑さが増すにつれて大きな問題になることがわかりますか?

  3. Cスタイルの文字列を読み取る方法はありますか?おそらくifstreamの代わりになります。私は本当にxmlを使いたくないのでtxtファイルを保存したいと思いますが、実行可能なソリューションであればファイルフォーマットを変更できますか?

  4. 時期尚早な最適化私は知っていますが、ゲーム内のすべてのテキストに同じ機能を使用する予定です。スピードの点でこれを行う良い方法は何でしょうか(なぜすべての文字列)?

私は助けに必要な情報を提供していただき、尋ねてください。

+0

std :: string s; const char * cstring = s.c_str(); – Bill

+0

@meagarあなたはあなたのコメントを回答にすることができますので、私はそれを受け入れることができます。それはここで最も役に立つものでした。 – Skeith

+0

@Skeith確かに、ありがとう。 – meagar

答えて

1

Cスタイルの文字列とC++のstd::stringの間で自由に変換できます。 my_cpp_string.c_str()を使用してC++文字列のC文字列表現を取得し、を使用してCスタイル文字列から新しいstd ::文字列を初期化してください。

3
std::string mystr = "Hello World."; 
mystr.c_str(); // gets a null terminated const char* C-style string 

上記のようにc文字列にアクセスする必要がある場合は、現在行っているとおりにファイルを読みます。

+0

問題はありませんか? C++には、std :: string :)からCスタイルの文字列を取得する方法が常にありました。 – Torp

1

2)

some_D3Dtext_function(some_text.c_str()) 

3と4は、非問題になるD3DtextためにあなたのC++文字列を渡すためにc_str()メソッドを使用します。

関連する問題