2016-03-24 21 views
0

私はちょうど私が幾分新しくなったので、エンジンの外でコーディングするのはかなり新しいことを指摘したいと思います。画面にテキストを描く

私はゲームのベースとしてSDLを使用しており、スコア/時間の形でテキストを画面に簡単に描画する方法を知りたいと考えています。

これまでのところ、私が本当に理解していたものや使い方を見つけられませんでした。タグSDLで検索したときに最も見つけたのはSDL_ttfで、私はそれを調べようとしましたが、成功しませんでした。

ここでも、スコア、時間の形でテキスト、文字列、および浮動小数点/整数を表示する簡単な方法を探しています。

+1

ああ、申し訳ありません.C++を使用しています –

+0

これで苦労しているのであれば、エンジンに戻る価値があるかもしれません。スニーカーではありません。SDLは、この種の問題を繰り返しあなたに伝えます。これは、ゲームエンジンよりも一般的な目的であり、しばしば文書化されていません。 – DanBennett

+0

あなたは確かにSDL_ttfを使用することはできません。ビットマップにレンダリングできる別のフォントレンダラー(win32関数 'DrawText'など)を使用することもできます。また、[単色のビットマップフォントで簡単なフォントレンダラーを作成することもできます(http://lazyfoo.net/ SDL_tutorials/lesson30 /)。しかし、あなたのベースとしてSDLを使い続けたいと思っているなら、本当に簡単な選択肢はありません。 – PeterT

答えて

0

あなたはSDLのttfライブラリを使いたいと思うでしょう - 本当にTrueTypeフォントを扱います。

http://www.libsdl.org/projects/SDL_ttf/ とドキュメント http://jcatki.no-ip.org:8080/SDL_ttf/ http://jcatki.no-ip.org:8080/SDL_ttf/SDL_ttf.html

(&は、フォントファイルを閉じて開くように)TTF_CloseFontTTF_OpenFontに特にマニュアルを参照してくださいとレンダリング機能は、私はおそらくしたいあなたの位置でTTF_RenderText_Solid

を例えばこれらをラップする描画テキストを処理するためのヘルパー関数をいくつか記述し、文字列、描画位置などを渡して、印刷する必要があるときはいつでも呼び出すことができますスコア/ etc。

+0

SDL ttfをインストールするのに問題があります。どうやって完了したのか分かりません。ドキュメントには、ソースのダウンロードで見つかるはずですが、そこには見つかりません。 –

+0

開発ライブラリは、インストール方法に関する指示とともに投稿された最初のリンクにあります。開始時の2番目のリンクの説明を参考にしてください。それだけでは不十分な場合は、具体的な質問をする必要があります。最終目標は画面にテキストを書き込むことです。ライブラリをインストールする必要がありますが、具体的に何が問題になっていますか?何を試しましたか? – DanBennett

1

ライブラリSDLだけでは、テキストを画面に書き込む機能がありません。あなたの検索はSDL_ttfにつながります。これは正しいライブラリです。

すでにSDL_Initと呼ばれる想定使用例(唯一の余分なコードは、SDL_Windowを作成し、そのウィンドウのSDL_Renderer* rendererを持っている。

const SDL_Rect* dstrect; 
SDL_Color color; 

TTF_Init(); 
TTF_Font* font = TTF_OpenFont("font.ttf" /*path*/, 15 /*size*/); 
SDL_Surface* textSurface = TTF_RenderText_Blended(font, "Text to render", color); 

SDL_Texture* textTexture = SDL_CreateTextureFromSurface(renderer, textSurface); 
SDL_RenderCopy(renderer, textTexture, NULL, dstrect); 

SDL_FreeSurface(textSurface); 
SDL_DestroyTexture(textTexture); 
TTF_CloseFont(font); 
TTF_Quit(); 

が他のTTF_RenderText_*方法のためのドキュメントに見て、どのように異なっています。

C++を使用しているので(SDLとSDL_ttfの両方がC言語になっています)、TTFレンダリングに関するラッパーを記述することをお勧めします。

関連する問題