問題タブ [sdl-ttf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2130 参照

c++ - Sdl_ttf テキストの折り返し

テキストの文字列が300長すぎると、新しい行にドロップして続行したいとします。これがあなたのやり方だと読みましたが、機能していません-テキストを引き延ばしているだけです。

これを達成する方法は?

0 投票する
0 に答える
198 参照

c++ - テキストの複数の段落をレンダリングしますか?

ここ数日、私は練習として低品質のゲームをたくさん作ってきました。そのほとんどはテキストがほとんどまたはまったく含まれていませんでしたが、今回は本物のゲームを作りたかったのです。シミュレーションに大きく依存するゲームです。ダイアログでは、テキストをレンダリングする私の方法は次のとおりです。

ご覧のとおり、私は正確にはサーフェスを使用していません。上記のコードは、変数からテキストを呼び出す方法の単なる例ですが、ダイアログ ボックスに段落を表示したい場合はどうすればよいでしょうか? 個人的には・・・こんな風に、曲面をテクスチャに変換してからRectを組むとか、そういう風に作れますが、技術的に間違っているのではないか、もっと短くて簡単な方法があるのではないかという思いが強いです。ありますか?よろしければサンプルをいただけませんか?本当にありがたいです。

0 投票する
1 に答える
301 参照

c++ - SDL リセット サーフェス

(SDL_ttf を使用して) サーフェスにテキストを描画してから、サーフェス上のテキストを変更したいと考えています。表面を再描画しただけでは、テキストは消えません。問題を解決する方法についていくつかのフォーラムの投稿を見てきましたが、それを理解できないようです. 特に、このソリューションが機能しない理由を理解できません:(コードが長いため、これは本質的なものを提供するだけです)

宣言されたクラスファイルで:

私のレンダリング機能の開始時:

ポインターと C++ (確かに制限されています) についての私の理解では、これにより、box が指す面が boxCopy が指す面と等しくなるはずです。代わりに、boxCopy サーフェスが box のコピーになります。このコード行で boxCopy を変更する方法はわかりませんが、それが起こっているようです。

0 投票する
1 に答える
100 参照

c++ - 自動的に割り当てられたサーフェスで SDL_FreeSurface を使用する

開発中のゲームで深刻な RAM の使用が発生しています。私はそれを実行したままにして、最初の使用量 30 MB から 1.5 GB を超える RAM を使用しているのを見ました。主な原因を 2 つの機能に特定しました。以下に貼り付けます。この問題を調査した結果、問題の 1 つは、TTF_RenderText_Blended を使用して TTF サーフェスを作成すると、解放されない新しいサーフェスが作成されることであるという結論に達しました。この自動的に作成されたサーフェスを解放するにはどうすればよいですか? サーフェス名がないため、SDL_FreeSurface を使用できません。

2番目の関数で何が起こっているのか、もう少し混乱しています。似たようなことが起こっていると思います (関数が呼び出され、解放されていない 2 番目のサーフェスを作成する) が、何が原因かはわかりません。サーフェスを作成する必要のないこの関数の別のバージョンを実装することを計画しているので、これはそれほど問題ではありません..

TTF 機能:

2 番目の関数 (スプライトの表示に使用):

0 投票する
1 に答える
1745 参照

c++ - SDL2_ttf エラー: エントリ ポイントが見つかりません

そのため、sdl_ttf をゲーム プロジェクトに追加しようとすると、奇妙なエラーが表示されました: http://i.imgur.com/RJ32QIs.png

すべてが事前に正常に機能し、TTF_Init() を追加したときに問題が発生しました...

これらは私のプロジェクトのファイルです:

main.cpp:

CEngine.h:

CEngine.cpp:

これらは私のリンカー設定です: http://i.imgur.com/Gyq5khi.png

そして、それはmingw 4.7を使用してコンパイルされました(更新:4.8で試したところ、同じエラーが表示されました)

前もって感謝します。(ばかげた質問をしている場合は申し訳ありませんが、どこにも答えが見つかりませんでした。)

0 投票する
1 に答える
689 参照

c++ - クラスとしてSDL_TTFを使用すると、メモリリークが発生します

私は巨大なメモリ リークを抱えてSDL_TTFおり、全体としての実装に疑問を投げかけています。

現在、私は次のクラスを持っています

MainMenuおよびクラスはOption、メニュー クラスを抽象化し、テキスト クラスを構築するパラメーターを使用して、それぞれ独自のボタン クラスを呼び出します。

したがって、現在、私のメイン ループはSDL_RendererMainMenu->Button->Text パスを介して (gRenderer) を渡します。

TTF_RenderText_SolidText クラスが初期化されると、フォントが読み込まれ、Button クラスによって渡されたメッセージを使用してフォントTTF_SetFontStyleが設定され、テキストを太字に設定します。

私は以下を使用して描画します:

SDL_CreateTextureFromSurfaceまたはで膨らんでいると思いますSDL_RenderCopyEx

このメモリ リークを修正するにはどうすればよいですか? 私は露骨な何かを見落としていますか?

解決:

Twinklebear の ifnroamtion の発見/使用:

ヘッダーでオブジェクトを宣言するときに、テクスチャを宣言し、それをNULLByと等しくなるように設定しました。SDL_Texture* mTexture = NULL;

次に、描画関数内で、テクスチャが NULL に設定されているかどうかを確認します。

私がやりたいのは、クラスにブール変数をスローして、テクスチャを更新する必要があるかどうかを示し、テクスチャをリセットすることです。

0 投票する
2 に答える
259 参照

c++ - TTF_RenderTextSolid() は、ピクセルあたり 1 バイトの Surface を返しますか?

このコード:

数字の 1 を出力します。これは、TTF_RenderTextSolid によって返されるサーフェスが 1 ピクセルあたり 1 バイトであることを意味します。私が正しければ、ピクセルあたり 4 バイトである必要があります。なぜこれが起こっているのか誰にも分かりますか?