文字列XNAの途中で異なる色の単語 -- xna フィールド と monogame フィールド と fonts フィールド gamedev 関連 問題

Word in different color in middle of string XNA


1
vote

問題

日本語

COD AW EXOゾンビの武器を購入するときは、同じ文字列に異なるフォントカラーを使用することができます。

画像の説明を入力します。

どうすればいいですか?

ありがとう。

英語

Is it possible to use different font colors for the same string, for example, when buying a weapon in CoD AW Exo Zombies:

enter image description here

How do I do this?

Thanks.

</div
        
   
   

回答リスト

2
 
vote
vote
ベストアンサー
 

各部分に必要な色を指定して、単に色付きのテキストを個別にレンダリングすることができます。位置決めを正しくするために、 spritefont.measureString()メソッド

<事前> <コード> string[] stringPieces = { "Hel", "lo, ", "wor", "ld!" }; Color[] colors = { Color.Blue, Color.Green, Color.Yellow, Color.Red }; Vector2 startPosition = new Vector2(100, 100); Vector2 offset = Vector2.Zero; SpriteFont font = Content.Load<SpriteFont>("myFont"); spriteBatch.Begin(); //Loop through each piece of the string, //drawing each with a different color, //and moving the offset forward by its measured length for( int x = 0; x < stringPieces.Length; x++) { spriteBatch.DrawString(font, stringPieces[x], startPosition + offset, colors[x]); offset.X += font.MeasureString(stringPieces[x]).X; } spriteBatch.End();

btowntkd's Gamedev.net Post

あなたがこれを頻繁にするつもりなら、この簡単なものを使って基本的なパーサを書くことをお勧めします。

例構文: "{{blue}} hel {{green}} lo、{{黄}} wor {{red}} ld!"

  • <コード> ["blue}}Hel"], ["green}}lo, "], ["yellow}}wor"], ["red}}ld!"] を取得するには、 {{ に分割します。
  • 各結果を介してループし、 }} に分割して、色とテキストの組み合わせを取得します。 <コード> ["blue", "Hel"] 。
  • color.blueを使用して文字列 "HEL"をレンダリングします。続行します。
 

You can simply render the pieces of colored text individually, specifying any color you want for each piece. In order to get the positioning correct, you can use the SpriteFont.MeasureString() method.

string[] stringPieces = { "Hel", "lo, ", "wor", "ld!" }; Color[] colors = { Color.Blue, Color.Green, Color.Yellow, Color.Red };  Vector2 startPosition = new Vector2(100, 100); Vector2 offset = Vector2.Zero; SpriteFont font = Content.Load<SpriteFont>("myFont");  spriteBatch.Begin();  //Loop through each piece of the string,  //drawing each with a different color, //and moving the offset forward by its measured length for( int x = 0; x < stringPieces.Length; x++) {     spriteBatch.DrawString(font, stringPieces[x], startPosition + offset, colors[x]);     offset.X += font.MeasureString(stringPieces[x]).X;  }  spriteBatch.End(); 

Code based on BTownTKD's GameDev.net post.

If you're going to do this often, I would recommend writing a basic parser to make using this easier.

Example syntax: "{{blue}}Hel{{green}}lo, {{yellow}}wor{{red}}ld!"

  • Split on {{ to get ["blue}}Hel"], ["green}}lo, "], ["yellow}}wor"], ["red}}ld!"].
  • Loop through each result and split on }} to get a combination of color and text e.g. ["blue", "Hel"].
  • Render string "Hel" using Color.Blue. Continue.
</div
 
 

関連する質問

3  libgdxでhieroによって生成されたパッド入りフォントの垂直方向の配置  ( Vertical alignment of a padded font generated by hiero in libgdx ) 
hieroを使用してlibgdxのビットマップフォントを生成しました。たくさんのパディングを必要とするいくつかの距離フィールドフォントを持っています。残念ながら彼らは正しく整列していないようです。 下のは、getBounds()から返された値に描画された境界...

2  商業向けゲームで特定のフォントを使用する  ( Using a particular font in a commercial game ) 
私は販売しているゲームに取り組んでいます、そして私はこのフォント。ライセンスは次のとおりです。 "ライセンスの外部のフォントをコピーまたは配布できない 世帯、会社、学校、または機関。外部にお問い合わせください フォントを使って自分のライセンスを購入...

0  スケールスクリーンスペースクワッド(フォントレンダリングで使用)  ( Scale screen space quads used in font rendering ) 
私は<0,1>に位置づけています。 x&lt; 0,1;座標私はこのシステムをフォントレンダリングするために使用します。 頂点シェーダにはあります。 <事前> <コード> gl_Position.xy = 2.0 * POSITION.xy - 1.0; ...

9  現実のためにフォントリスですか?  ( Is font squirrel for real ) 
私は font squirrel を見つけました。どこでもページ。これらのフォントは、彼らが言うようにコミカルな使用に本当に使えますか? ...

1  ゲームのテキストレンダリング技術  ( Text rendering techniques for games ) 
3Dアプリケーションのテキストレンダリング技術を調査しています。トピックに関する情報を見つけるのに苦労しています。現在のゲームで実際に使用されている、あるいは歴史的意義を持っているテキストレンダリングの他のテキストレンダリングの方法を知っていますか? これま...

5  正しいヒントを使用してゲームにフォントをレンダリングするにはどうすればよいですか。  ( How can i render fonts in a game with correct hinting ) 
天使コードのビットマップフォントジェネレータをかなり少し使用しました。それは非常に良いですが、ヒント情報を使用して、サイズ/ピクセルカバレッジに基づいて異なる厚さを提供することによって、ヒント情報を使用する方法があるのだろうか。 私は、資産のサイズを維持または...

1  OpenGLを使ってCでフォントをレンダリングするにはどうすればよいですか。  ( How can i render a font in c with opengl ) 
私が試したもの: stb_truetype.h < / A>とOpenGLのC。 私はここで 使用するコード: <プレクラス= "LANG-C Pretayprint-Override"> <コード> texture_t fnt_texture; GL...

14  外部ライブラリを使用せずにXNAで美しい小さなテキストを入手するにはどうすればよいですか。  ( How do i get beautiful small text in xna without using external libraries ) 
XNAでは、Spritefontテクノロジは恐ろしいです。ヌクレックスは仕事をとても良くしますが、私は外部の参照を持ち、私は私のゲームでほとんどやっています。 履歴やQuickSandのようなフォントを使用するときは、フォントのサイズが小さくなるように見えま...

29  True Type Fontからビットマップフォントを作成するためのツール[クローズ]  ( Tool to create a bitmap font from a true type font ) 
閉じたこの質問はオフトピックです。現在答えを受け付けていません。 この質問を改善したいですか? ...

4  AngelcodeのBMFONTの合法性  ( Legality of angelcodes bmfont ) 
商業用アプリで独自のフォント(アリアなど)のビットマップバージョンを使用するのは合法ですか? AngelCodeのbmfont を使用して、インストールされているいくつかの様々なシステムのビットマップバージョンを生成します。 iOSゲームで使用するフォント...

6  Windows Phone 7のXNAでUnicodeを表示します  ( Showing unicode in xna on windows phone 7 ) 
サーバから名前をダウンロードするアプリケーションを作成しています。これらの名前は、WP7のXNAにレンダリングする必要があるUnicode言語テキストにすることができます。ここに見える最大の問題は、WP7 XNAシステムがUnicode(特に複雑なスクリプト)...

1  私のLWJGLフォントには、なぜそれらの周りにドットと行がありますか。  ( Why do my lwjgl fonts have dots and lines around them ) 
フォントをレンダリングするとき、テキストの周囲の変な点と行があります。私はこれが起こる理由はわかりません。これがそれがどのように見えるもののイメージです: 私たちのフォントクラスは次のようになります: <事前> <コード> package me.NJ.C...

1  DirectXの選択テキストを表示します  ( Directx displaying selectable text ) 
私はxを直接xにしてこのチュートリアルに続くように新しい: brayzarsoft (パート14)テキストを表示することができました。ただし、この方法を使用すると、テキストはテクスチャにレンダリングされます。 チャット/コンソールを持つゲームを見ると、テキスト...

1  フォントレンダリング、フォントのグリフをどのように整列させますか?  ( Font rendering how do you align glyphs of a font ) 
libgdx の BitmapFontWriter by BitmapFontWriter を使用してテキストクワッドをレンダリングしようとしています。 フォントでは、<コード> size 、<コード>、<コード>、<コード>、<コード> Paddin...

6  XNA:Spritefontの質問  ( Xna spritefont question ) 
Spritefontでお願いします。私はkootenay以外の私のゲームに別のフォントを望みます。だから、私はSpritefont XMLを編集します、すなわち: <事前> <コード> <FontName>Kootenay</FontName> または ...

0  DirectX 11のSLIMDXでテキストを描画しますか?  ( Drawing text in slimdx with directx 11 ) 
SLIMDXを使用してDirectX 11の画面にテキストを描画できますか? SlimDX.Direct3D10では、使用できるフォントクラスがありますが、SLIMDX.DIRECT3D11にフォントクラスはありません。 ...

5  フォントロードを処理する方法  ( How to handle font loading ) 
私は私のゲームにテキストを表示する必要があります。 私はもともと私が静的に私が画像を画像と使う必要があるすべてのテキストを静的にレンダリングすることができると考えました。私はそれが悪い考えだと思い始めました。私は将来それを国際化する必要があります、そしてゲーム...

6  Unicodeテキストを単語で表示する方法  ( How to display unicode text in monogame ) 
私はどんなキーボードでも入力できる文字を描く方法を探しています。そのため、単語プロジェクトで限られた言語サポートに問題がありません。 これまでの文字の特定の範囲の文字を追加する方法は、すべての文字を持つ巨大なテクスチャがあることを意味し、おそらくメモリを食べる...

6  XNAのフォントライブラリ  ( Font library for xna ) 
XNAで利用可能な無料型ライブラリ種類の実装はありますか?私はそれをWP7で使いたいので、管理コードであるべきです。私は代わりにSpritefontを使用することができることを知っていますが、私は複雑な要件のために他の実装が存在するかどうかを知りたいです。 ...

2  LIBGDXにヒンディー語のテキストをレンダリングする方法  ( How do i render hindi text in libgdx ) 
フォントを使用してlibgdxにヒンディー語のテキストをレンダリングする方法たとえば、Word "↑" をレンダリングしたいです。 これは私が持っているものです、これまで: <事前> <コード> import com.badlogic.gdx.Game; i...

16  Open Source Gameで配布できるフォントはどこにありますか? [閉まっている]  ( Where can i find fonts which i can distribute with an open source game ) 
閉鎖。この質問はもっと焦点を絞ったにする必要があります。現在答えを受け付けていません。 この質問を改善したいですか?この記事の...

4  既存のビットマップからFNT(AngelCode Format)ファイルをどのように作成しますか?  ( How do you create fnt angelcode format files from existing bitmaps ) 
私はしばしば同じ問題を踏み入れます:誰でもこのようなpngにうまく配合されたシートの形で私のための素晴らしいビットマップフォントを作成します: ...そして私は AngelCode .Fnt Atlas それを使用するため(Unity、libgdx、ま...

6  Xna Spritefontの高さを手に入れるにはどうすればよいですか。  ( How do i get the height of an xna spritefont ) 
私はSpritefontにいくつかのテキストを持っていて、私はピクセル単位の高さを知る必要があります。 測定estring()が私を近づけるだろうと思っただろうが、それはちょうど長さについてのようです。 ...

0  LWJGLテキストレンダリング  ( Lwjgl text rendering ) 
現在プロジェクト中に、LWJGLとSlick2Dライブラリを使用してテキストを画面にレンダリングしています。これがより具体的な例です: <事前> <コード> Font f = new Font("Times New Roman",Font.BOLD,1...

1  モノガームでフォントを読み込む  ( Loading font in monogame ) 
この質問はおそらく二重であるが、私は昨日、私が成功せずにこれを行おうとしていること以来、まだ尋ねています。私は多くの解決策に従っていて、古くなっていた、またはそれらが単にうまくいかなかったより多くのライブラリを試しました。 今私が見つけた最も合理的な方法はです...

関連する質問

3  libgdxでhieroによって生成されたパッド入りフォントの垂直方向の配置 
2  商業向けゲームで特定のフォントを使用する 
0  スケールスクリーンスペースクワッド(フォントレンダリングで使用) 
9  現実のためにフォントリスですか? 
1  ゲームのテキストレンダリング技術 
5  正しいヒントを使用してゲームにフォントをレンダリングするにはどうすればよいですか。 
1  OpenGLを使ってCでフォントをレンダリングするにはどうすればよいですか。 
14  外部ライブラリを使用せずにXNAで美しい小さなテキストを入手するにはどうすればよいですか。 
29  True Type Fontからビットマップフォントを作成するためのツール[クローズ] 
4  AngelcodeのBMFONTの合法性 
6  Windows Phone 7のXNAでUnicodeを表示します 
1  私のLWJGLフォントには、なぜそれらの周りにドットと行がありますか。 
1  DirectXの選択テキストを表示します 
1  フォントレンダリング、フォントのグリフをどのように整列させますか? 
6  XNA:Spritefontの質問 
0  DirectX 11のSLIMDXでテキストを描画しますか? 
5  フォントロードを処理する方法 
6  Unicodeテキストを単語で表示する方法 
6  XNAのフォントライブラリ 
2  LIBGDXにヒンディー語のテキストをレンダリングする方法 
16  Open Source Gameで配布できるフォントはどこにありますか? [閉まっている] 
4  既存のビットマップからFNT(AngelCode Format)ファイルをどのように作成しますか? 
6  Xna Spritefontの高さを手に入れるにはどうすればよいですか。 
0  LWJGLテキストレンダリング 
1  モノガームでフォントを読み込む