ページ 11

DXライブラリの文字表記について

Posted: 2013年1月13日(日) 01:29
by テノン
文字を描画する時に
int DrawString( int x , int y , char *String , int Color ) ;
っておくしかないと思うんですが
そのchar *Stringの部分に関数の計算結果などを表記させるにはどうしたらいいのでしょうか

意味も分かりにくい初心者な質問でごめんなさい><

Re: DXライブラリの文字表記について

Posted: 2013年1月13日(日) 01:48
by jay
やり方は幾つかあると思いますね

僕ならsprintf_sという関数を使います
例えば

char str[20];

という文字列用の変数を用意しておいて
そこに

sprintf_s(str, "答えは%d", 4+6);

とすればstrに「答えは10」というデータが入るわけですね
あとはDrawString関数で描画してやればいいかと


もしも「%dって何?」とか「何で%dに4+6の答えが入るの?」と言う辺りが分からない場合は
C言語の文字列操作に関する部分を勉強してみてください

Re: DXライブラリの文字表記について

Posted: 2013年1月13日(日) 08:21
by みけCAT
DXライブラリでしたら、素直にDrawFormatString関数を使えばいいと思います。
上の例でしたら、例えば

コード:

DrawFormatString(x,y,Color,"答えは%d",4+6);
です。バッファを確保したり、sprintf_sなどという変な関数を使う必要はありません。

Re: DXライブラリの文字表記について

Posted: 2013年1月13日(日) 09:45
by KAIJIN
私ならCreateFontToHandleでフォントハンドルを入手して、
DrawFormatStringToHandleで表示します。

CreateFontToHandle
http://homepage2.nifty.com/natupaji/DxL ... tml#R17N10

DrawFormatStringToHandle
http://homepage2.nifty.com/natupaji/DxL ... tml#R17N22

なおフォントは割りと訴えられることがよくあるのでフリーのフォントをインストールして使うといいでしょう。

コード:

int high_score=0;
font=CreateFontToHandle("フォント名",20,2,DX_FONTTYPE_NORMAL);
DrawFormatStringToHandle(420,70,GetColor(255,255,255),font,"%d",high_score);

Re: DXライブラリの文字表記について

Posted: 2013年1月13日(日) 21:15
by テノン
皆さん返信ありがとうございます
案外知らない関数があったのでまだまだ勉強が必要だなと感じました
本当にありがとうございます!