Zobrazení pro pokročilou japonštinu pomocí vlastních procesorů obsahu

Stránky aktualizovány :
Datum vytvoření stránky :

O japonském displeji

Textová kresba v MonoGame používá SpriteFont, stejně jako XNA. Informace o spriteFontu najdete v tématu Zobrazení alfanumerických znaků a podrobností stylu písma, protože je stejné jako U XNA.

Pokud používáte SpriteFont, musíte předem zadat znaky, které chcete použít. Pokud se jedná pouze o alfanumerické symboly, lze to provést téměř bez nákladů jako specifikace znaků a času sestavení, protože je to asi 100 znaků, ale pokud jde o japonštinu, stává se tisíci znaků, takže doba sestavení se stává extrémně dlouhou. Pokud zadáte pouze znaky, které mají být použity, může být čas sestavení do určité míry zkrácen, ale je obtížné určit znak, který má být použit v opačném směru, a bude ještě obtížnější, pokud dojde ke změně znaku, který má být použit.

V reakci na tento problém, "Ninari GD"stránky byly přizpůsobeny tak, aby kreslení japonštiny v XNA plynuleji (mimochodem, site-run Yuichi Ito - MSFT je jedním z vývojářů XNA Framework). To usnadňuje určení znaků, které chcete použít, zkrátit dobu sestavení, ozdobit znaky a další. Další informace naleznete na odkazu.

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

Však "WPF font processor" uvedené na stránce je pro XNA a nelze použít jako je v MonoGame. Takže bych to rád přenesl do MonoGame.

Stažení písma WPF

Otevřete následující weby:

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

Přejděte dolů na dva odkazy a kliknutím na výše uvedený odkaz stáhněte projekt, který obsahuje kód řazení. Dolní je pouze knihovna DLL, takže ji nemusíte stahovat.

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

Extrahujte stažený soubor, abyste mohli načíst obsah.

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

Vytvoření projektu procesoru písem WPF

Chtěl bych vytvořit WPF písmový procesor DLL, který pracuje s "Any CPU", ale z nějakého důvodu, když jsem vytvořit projekt s "Content Pipeline Extension Library" z XNA Framework, mohu jen vytvořit v x86, tak budu vytvářet z běžné knihovny tříd zde.

クラス ライブラリの作成

Při vytváření projektu nepotřebujete "Class1.cs", proto jej odstraňte.

「Class1.cs」の削除

Dále přidejte odkaz.

参照の追加

Protože nakreslíte text v WPF, budete potřebovat odkaz související s WPF. Nejprve zaškrtněte "PresentationCore" z "Framework".

「PresentationCore」にチェック

Dále zaškrtněte políčko "WindowsBase". Nyní stiskněte tlačítko OK pro potvrzení a opětovné otevření Správce odkazů.

「WindowsBase」にチェック

Vlevo vyberte Procházet a klikněte na tlačítko Procházet níže.

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

Otevřete následující cestu ke složce:

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

Odtud přidejte následující dva knihovny DLL:

  • Soubor MonoGame.Framework.dll
  • Soubor MonoGame.Framework.Content.Pipeline.dll

2つの DLL を追加

Zkontrolujte, zda je zaškrtnuto, a klepněte na tlačítko OK.

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

Zkontrolujte odkazy, které byly přidány.

追加された参照を確認

Přidejte zdrojový kód ze složky "WpfFontPipeline" ze staženého projektu do projektu, který právě upravujete.

ソースコードを追加

Stát, který jste přidali.

追加した状態

Ověřte, zda je konfigurace sestavení "Release" a "Any CPU".

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

Proveďte sestavení a zjistěte, zda bylo vytvořeno úspěšně.

ビルド結果

Knihovna DLL je vytvořena.

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

Vytvoření herního projektu

Vytvořte projekt pro MonoGame. Nezáleží na tom, jaká je platforma.

MonoGame のプロジェクトを作成

Umístěte knihovnu DLL, kterou jste právě vytvořili, do složky Obsah. Nezáleží na tom, kde je Knihovna DLL, ale v takovém případě budete potřebovat relativní nebo absolutní cestu, takže ji prozatím nechám tady.

 DLL を Content フォルダに配置

Otevřete soubor Content.mgcb a otevřete odkazy s vybraným obsahem.

Pokud poklepáním na tlačítko "Content.mmcb" jej neotevřete, spusťte "MonoGame Pipeline" z nabídky Start.

References を開く

Do textového pole zadejte název souboru knihovny DLL, kterou jste právě vytvořili, nebo cestu vzhledem k nebo absolutní cestu z content.mgcb.

Po nastavení knihovny DLL stále neodráží, takže po uložení projektu ukončete monoGame Pipeline a znovu jej otevřete.

DLL のファイル名を入力

Vytvoří písmo pohyblivého symbolu. V nabídce vyberte "Upravit" "Přidat→Nová položka.

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

Vyberte "SpriteFont Popis" z položek přidat. (Mimochodem, po přidání SpriteFont, jsem otevřel soubor SpriteFont, aby bylo snazší vidět za běhu a změnil název písma a velikost.)

「SpriteFont Description」を選択

Pokud vyberete SpriteFont, který jste přidali, uvidíte, že procesor písem WPF je k dispozici z procesoru.

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

Vzhledem k tomu, že každý parametr lze nastavit, tentokrát jsem se ho snažil nastavit tak, jak je znázorněno na obrázku. Bohužel nelze změnit barvu v aktuální verzi MonoGame Pipeline.

各パラメータ設定

Zkus stavět. 6860 znaků bylo postaveno, protože zahrnovalo až jis úroveň 2. Přesto, čas je asi devět sekund, takže můžete vidět, že je to docela rychle.

ビルド完了

Teď kreslíme pomocí tohoto SpriteFontu a kód je úplně stejný jako XNA. Text můžete kreslit pomocí kódu zavedeného v části Zobrazení alfanumerických znaků. Samozřejmě, japonština je také možné.

Chtěl bych dát pouze kód, který jsem přidal jednou.

Definiční část pole. "SpriteFont" byl přidán.

GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

SpriteFont font;

Načítání a vytváření dat písma v LoadContent metoda.

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");
}

Kreslení s japonštinou v metodě Draw.

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);
}

Při spuštění je vykreslen text. Je to trochu těžké pochopit, ale písmena mají hranice a modré gradace uvnitř.

Bylo snadné kreslit japonštinu takhle a bylo možné nakreslit postavu s dekorací.

テキストの描画結果

Nakonec nelze změnit barvu dekorace textu na monoGame Pipeline, ale můžete soubor otevřít přímo a upravit.

Po uložení a zavření projektu otevřete soubor MCCB jako textový soubor.

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

Pokud se posunete dolů, v cílovém parametru jsou informace o barvě, takže je upravte přímo tam.

色情報を直接編集

Po uložení textu znovu otevřete monoGame Pipeline a vytvořte jej. Můžete vidět, že barva se změnila při spuštění.

色変更したテキスト