アプリ版:「スタンプのみでお礼する」機能のリリースについて

デバッグ用に変数を表示できるようにしたいんですが、float型をchar*の文字列に変換できるようにするにはどうしたらいいですかね?
Javaのようにstringオブジェクトに用意されているんでしょうか?
どうかご教授お願いします。
あと実際、DirectXでデバッグ用に変数を表示する場合の一般的にどのような方法をとられているのでしょうか?

A 回答 (3件)

お礼ありがとうございます。

再度No.2です。

「速度」ですか・・・そうですねぇ・・個人的にはデバック用に用意したコードに
そこまで速度を求めてどうするのか?とも思ったりしますが、私個人の指針を
とりあえずあげてみます。

まずたとえデバックコードだろうが絶対速度が欲しい!!というのなら、ビデオメモリに
必要となる文字をあらかじめ描画しておき、表示するときはそれを使用して表示する
方法があります。基本的には半角の a~z A~Z 0~9 と一部の記号があればデバック用なら
事足りるハズです。準備する方法が分からないなら、あらかじめ画像を用意するのが早いです。
問題があるとすれば、用意した分の文字しか使えない点でしょうか?
デバック用に使用する文字コードを任意の転送元座標に変換するのは半角文字だけなら
変換テーブルを作成すれば割とすんなりいくかと思います。

後は文字列を描画する方法ですが、文字に限らず、各サーフェス(テクスチャ?)に対して
GDIで描画する必要がある場合、一回の描画ループで何回もGDI関数を使用しない方向に
持っていくのがキモです。つまり、D3DXFont を使用する場合、いくらデバック用だからって
何回も DrawText() メソッドを使用したら、そりゃその分だけ速度が落ちていきます。
あらかじめデバック用の表示文字列を、文字列バッファとして保持しておいて、
画面に転送する直前にDrawText()一回で全デバック文字を描画してしまうのが、
速度的にも負担は最小で済むはずです。

あくまで私個人の・・・ではありますが、2通り概念だけ説明してみました。
コレを鵜呑みにするもしないも、実際どう作るのかどうかも後は貴方次第
ということでいかがでしょうか?
    • good
    • 0
この回答へのお礼

2度もご回答感謝します。確かに考えてみれば、速度はそこまで必要ありませんよね。
提案された方法ですが、非常に参考になりました。
今回は手っ取り早くD3DXFontでやってみます。
ありがとうございました。

お礼日時:2006/05/10 01:43

float型を文字列にするにはNo1番さんの回答でいいと思います。


後は描画方法ですが、いくつかあります。参考URLをどうぞ
個人的なオススメは D3DXFont を利用することです。
sprintfで表示する文字列を作成したのちに、D3DXFontで表示する。
あくまでデバック用途なら、おそらくコレが一番手っ取り早いです。

参考URL:http://www.c3.club.kyutech.ac.jp/~sukiyaki/index …
    • good
    • 0
この回答へのお礼

ご回答感謝いたします。そのサイトを見て作成していたのですが、実行速度が遅くデバック向きではないのかと思い、質問させていただきました。言葉足らずで申し訳ございません。

お礼日時:2006/05/09 15:02

sprintf で文字列として確保したメモリに書き出せば良いと思います。


C++だったら、std::string がありますが、Cにはありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。おかげでできました。
C++には標準ライブラリ用意されているのですね。

お礼日時:2006/05/09 14:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!