Pantalla japonesa avançada mitjançant processadors de contingut personalitzats

Pàgina actualitzada :
Data de creació de la pàgina :

Sobre la pantalla japonesa

El dibuix de text en MonoGame utilitza SpriteFont i XNA. Per a SpriteFont, vegeu mostrar caràcters alfanumèrics i detalls d'estil de font, ja que és el mateix que XNA.

Si utilitzeu SpriteFont, heu d'especificar els caràcters que voleu utilitzar amb antelació. Si és només símbols alfanumèrics, es pot fer gairebé sense cost com a especificació de caràcter i temps de complexió perquè és sobre 100 caràcters, però quan arriba a japonès, es converteix en milers de caràcters, així el temps de complexió es fa extremadament molt de temps. Si només Especifiqueu els caràcters que s'utilitzaran, el temps de compilació es pot escurçar fins a cert punt, però és molest per especificar el caràcter que s'utilitzarà a l'inrevés, i es torna encara més molest si hi ha un canvi en el caràcter que s'utilitzarà.

En resposta a aquest problema, el lloc "Ninari gd"s'ha personalitzat per fer el dibuix japonès en XNA més suaument (per cert, el lloc de Run Yuichi Ito-MSFT és un dels desenvolupadors de l'estructura XNA). Això fa que sigui més fàcil especificar els caràcters que s'utilitzen, escurçar el temps de compilació, decorar els caràcters, i molt més. Per a més informació, consulteu l'enllaç.

WPF フォントプロセッサーで作成されたテキストの描画

Tanmateix, el "processador de font de WPF" presentat a la pàgina és per a XNA i no es pot utilitzar com és en Monojoc. Així m'agradaria portar això a MonoGame.

Descarregui el processador de font de WPF

Obriu els següents llocs:

ひにけにGD - 真・簡単(かもしれない)日本語表示

Desplaceu-vos cap avall fins a dos enllaços i feu clic a l'enllaç anterior per baixar el projecte que conté el codi d'ordenació. El més baix és només un DLL, així no l'ha de descarregar.

プロジェクトをダウンロード

Si us plau, extraieu el fitxer descarregat de manera que pugueu recuperar el contingut.

ダウンロードされたファイル

Creï un projecte de processadors de font de WPF

Tenia com crear un DLL de processador de font de WPF que funciona amb "qualsevol CPU", però per una mica de raó quan creo un projecte amb la "biblioteca d'ampliació de canalització de contingut" de l'estructura de XNA, només el puc crear en x86, així el crearé des d'una biblioteca de classe regular aquí.

クラス ライブラリの作成

Quan crees un projecte, no necessites "Class1.cs", per tant, suprimeix-lo.

「Class1.cs」の削除

A continuació, afegiu una referència.

参照の追加

Com que dibuixeu text a WPF, necessitareu una referència relacionada amb el WPF. En primer lloc, marqueu "PresentationCore" de "Framework".

「PresentationCore」にチェック

Després, comprovi "WindowsBase". Ara premeu el botó d'acord per confirmar i tornar a obrir el gestor de referències.

「WindowsBase」にチェック

Seleccioneu navega a l'esquerra i feu clic al botó Navega a sota.

「参照」ボタンをクリック

Obriu la ruta següent de la carpeta:

  • C:\Program files (x86) \MSBuild\MonoGame\v3.0\Tools\

Des d'allà, afegeixi els dos DLLs següents:

  • Monojoc. Framework. dll
  • Monojoc. Framework. content. pipeline. dll

2つの DLL を追加

Asseguri's que estigui comprovat i faci clic al botó correcte.

チェックされていることを確認

Revisar les referències que s'han afegit.

追加された参照を確認

Afegiu el codi font de la carpeta "WpfFontPipeline" del projecte que heu baixat al projecte que esteu editant.

ソースコードを追加

L'estat que heu afegit.

追加した状態

Verifiqueu que la configuració de la compilació sigui "release" i "qualsevol CPU".

ビルド構成が「Release」「Any CPU」になっていることを確認

Realitzeu una compilació per veure si s'ha construït correctament.

ビルド結果

Es crea la DLL.

DLL が作成されていることを確認

Crear un projecte de joc

Crear un projecte per Monojoc. No importa quina plataforma és.

MonoGame のプロジェクトを作成

Posi el DLL que només creava a la carpeta de contingut. No importa on és la DLL, però en aquest cas es necessita un camí relatiu o absolut, així que vaig a deixar-ho aquí per ara.

 DLL を Content フォルダに配置

Contingut obert. mgcb i les referències obertes amb el contingut seleccionat.

Si feu doble clic a "content. mmcb" per no obrir-lo, inicieu "MonoGame pipeline" des del menú d'inici.

References を開く

En el quadre de text, escrigui el nom d'arxiu del DLL que només creava, o el camí relatiu o camí absolut des de content. mgcb.

Després que l'estableixi, el DLL encara no reflecteix, així una vegada que estalvia el projecte, la canonada de monoGame de sortida i reobre'l.

DLL のファイル名を入力

Crea una font de sprite. Seleccioni "editar" > afegir → element nou del menú.

スプライトフォントを作成

Seleccioneu "SpriteFont Description" d'entre els elements per afegir-lo. (Per cert, després d'afegir SpriteFont, vaig obrir l'arxiu SpriteFont perquè sigui més fàcil de veure en el temps d'execució i va canviar el nom i la mida de la font.)

「SpriteFont Description」を選択

Si seleccioneu el SpriteFont que heu afegit, veureu que el processador de tipus de lletra del WPF està disponible al processador.

「WPF フォントプロセッサー」が選択できる

Atès que cada paràmetre es pot establir, aquesta vegada vaig tractar d'establir com es mostra a la figura de moment. Malauradament, no es pot canviar el color en la versió actual de la canonada de MonoGame.

各パラメータ設定

Intenta construir. es van construir 6860 caràcters perquè incloïa el nivell 2 de JIS. No obstant això, el temps és d'uns nou segons, de manera que es pot veure que és bastant ràpid.

ビルド完了

Ara, estem dibuixant l'ús d'aquest SpriteFont, i el codi és exactament el mateix que XNA. Podeu dibuixar text utilitzant el codi introduït a "Mostra els caràcters alfanumèrics" tal com és. Per descomptat, el japonès també és possible.

Tenia com posar només el codi que afegia una vegada.

La part de definició del camp. "SpriteFont" s'ha afegit.

GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

SpriteFont font;

Càrrega i creació de dades de tipus de lletra en el mètode de LoadContent.

protected override void LoadContent()
{
  // Create a new SpriteBatch, which can be used to draw textures.
  spriteBatch = new SpriteBatch(GraphicsDevice);

  // TODO: use this.Content to load your game content here

  // フォントデータの読み込み
  font = Content.Load<SpriteFont>("Font");
}

Dibuix amb japonès en el mètode dibuixa.

protected override void Draw(GameTime gameTime)
{
  GraphicsDevice.Clear(Color.CornflowerBlue);

  // TODO: Add your drawing code here
  spriteBatch.Begin();

  spriteBatch.DrawString(font, "真・簡単(かもしれない)日本語表示",
                    new Vector2(50, 50), Color.White);

  spriteBatch.DrawString(font, @"・OpenTypeフォント対応
・処理速度の高速化
・JIS漢字追加機能
・文字装飾",
              new Vector2(50, 150), Color.White);

  spriteBatch.End();

  base.Draw(gameTime);
}

En executar-lo, es dibuixa el text. És una mica difícil d'entendre, però les lletres tenen vores i gradacions blaves a l'interior.

Es va fer fàcil dibuixar japonès com aquest, i es va fer possible dibuixar el personatge amb la decoració.

テキストの描画結果

Finalment, no es pot canviar el color de la decoració del text en la canonada de Monojoc, però vostè pot obrir el fitxer directament i modificar-lo.

Una vegada que ha estalviat i ha tancat el projecte, obri l'arxiu de. mccb com a arxiu de text.

「.mgcb」ファイルをテキストファイルで開く

Si desplaceu-vos cap avall, hi ha informació de color al paràmetre de destinació, així que si us plau editeu-lo directament allà.

色情報を直接編集

Després de desar el text, obriu la canonada de Monojoc i creeu-lo. Podeu veure que el color ha canviat quan l'executeu.

色変更したテキスト