問題タブ [spritefont]
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.
monogame - Graphics.DrawString を使用したモノゲーム レンダリング テキスト (SpriteBatch.DrawString の代わりに)
コンテンツ パイプラインを使用して を使用してテキストをレンダリングする代わりにGraphics.DrawString
、(かなり静的な) テキストの束をオフスクリーン ビットマップにレンダリングし、それを 1Texture2D
回に変換してから単に を呼び出すことに欠点はありますか? これは基本的に「1 枚の紙」に描かれたテキストのページですが、ユーザーはフォントのサイズを変更することもできるため、さまざまなサイズのスプライトフォントを含める必要があります。SpriteBatch.Draw
SpriteFont
これは Windows 専用のアプリなので (移植する予定はありません)、単純な古い WinForms アプリのようにすべてのフォントにアクセスできます。また、スプライト フォントを使用するよりGraphics.DrawString
も (または を使用した場合でも) レンダリングの品質がはるかに優れていると思います。TextRenderer
また、各反復でテキスト全体を「レンダリング」する必要があるため(つまり、各文字の頂点を個別に送信する)、パフォーマンスが向上する可能性がありますがSpriteBatch.DrawString
、ビットマップを使用することで一度だけ実行するため、 CPU側。
- ここに表示されていない問題や欠点はありますか?
- スプライトフォントを使用してアルファ ブレンド テキストを取得することは可能ですか? Nuclex フレームワークが言及されているのを見たことがありますが、Monogame AFAIK には移植されていません。
[アップデート]
技術的な面では、スプライト フォントよりもはるかに優れたテキスト レンダリングで、完全に機能しているようです。それらが水平にレンダリングされる場合、ClearType も取得します。存在する可能性のある問題の 1 つは、フォントのスプライトシートは、テキストのページ用に別のテクスチャを作成するよりも、テクスチャ メモリの点で効率的である (そうかもしれません?) ことです。
c# - エラー - SpriteFont が実装されていません
Monogame プログラムでテキストを描画しようとしています。SpriteFont を使用して実行したいのですが、SpriteFont を読み込もうとすると次のエラーが発生します。
SpriteFont1 ビルド アクションは「コンテンツ」に設定され、出力ディレクトリへのコピーは「常にコピー」として設定されます。SpriteFont1.xnb ファイルは、同じ設定で Content フォルダーにあります。SpriteFont を読み込めるようにエラーを修正するにはどうすればよいですか?
scrollview - モノゲーム ウィンドウ - テキストビューをスクロール可能にする
モノゲーム ウィンドウでアプリケーションを実行しようとしています。画面に表示する長いテキストがあります。spriteBatch.Drawstring を使用して画面にレンダリングしようとしましたが、ある程度成功しました。しかし、テキストが必要な領域に収まりませんでした。私はこのチュートリアルに従っていました。テキスト全体を目的の領域内に配置するには、垂直スクロールを実装する必要があります。誰でも助けを提案できますか。これは私の現在のコードです:
および描画関数内:
c# - SpriteFont が MonoGame で動作しない
なんらかの理由で、何が起こっても、何を変更しても、常にこのエラーが発生します。
コンテンツ フォルダーに TopBarFont.spritefont をコンテンツとして設定し、他のすべてのアセットと同様に常に出力ディレクトリにコピーします。
私のスプライトフォントファイルは次のようになります。
2D テクスチャを使用してそれを描画するだけの他の投稿を見ましたが、そうではありません。
c# - モノゲームですべてのキャラクターをスプライトフォントで描画する方法
私はモノゲームが初めて.spritefont
で、選択したフォントで文字列を描画するためにファイルを作成しようとしています。
英字の文字列は画面にうまく表示されますが、日本語や中国語など、複数の言語で文字列を描画したいと考えています。
というわけで、多言語フォント「Microsoft JhengHei」の全文字を読み込んでみました。
フォントの最初の文字は!(U+0021)
で、最後の文字は です○(U+FFEE)
。
しかし、プログラムをコンパイルしようとすると、コンパイラはエラーを出しました:
.../Content/MyFont.spritefont: エラー: インポーター 'FontDescriptionImporter' で予期しないエラーが発生しました!
System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。---> System.ArgumentException: CharacterRegion.End は CharacterRegion.Start より大きくなければなりません
Microsoft.Xna.Framework.Content.Pipeline.Graphics.FontDescription.set_CharacterRegions (CharacterRegion [] 値) で
そして、 を に変更する○
と忮
、MSBuild
スタックしてコンテンツを進めるのに永遠に時間がかかります。
以下のコードMyFont.spritefont
:
私は数日間解決策を探しましたが、役に立ちませんでした。
c++ - DirectX::SpriteFont/SpriteBatch が 3D シーンの描画を妨げている
DirectX::SpriteFont
/の使用に問題がありますDirectX::SpriteBatch
(DirectXTK から; ここで説明したのとまったく同じ問題: SpriteFont クラスを使用してテキストを描画するときの問題)。
を呼び出さないと、SpriteBatch::Begin()
空間を回転するテクスチャ付きの立方体 (ケージ) が表示されます。説明した関数を呼び出すと、左上隅に 1 秒あたりのフレーム数だけが表示され、回転する立方体は表示されません。SpriteFont::DrawString
SpriteBatch::End()
github DirectXTK でChuck Walbournのチュートリアルに従い、SpriteFont
プリミティブ 3D オブジェクト (単純な三角形) を使用してレンダリングする 2 つのチュートリアル Draw String を組み合わせました。この例では、三角形の上に描画されたテスト文字列が表示されます。しかし、DirectXTK のクラスを使用してテキスト文字列を描画しているときに、私の例の回転する立方体が表示されない理由がわかりませんSpriteFont
。根本的な原因を見つけることさえできません。
ピクセル シェーダー ファイル (PixelShader.hlsl):
頂点シェーダー ファイル (VertexShader.hlsl):
問題を再現するには: Visual Studio 2015 Community Edition を使用しています。プロジェクトに DirectXTK (.lib) と DirectXTex ( WICTextureLoader
.cpp/.h、DDSTextureLoader
.cpp/.h、.lib) を追加しました。立方体の画像は、アルファ付きの .png です。
注:この重複した質問を作成しました。
回避する... 助けを求めたり、説明を求めたり、他の回答に返信したりすること。
他の質問について。