Pokročilé japonské zobrazenie pomocou vlastných procesorov obsahu

Stránka aktualizovaná :
Dátum vytvorenia strany :

Informácie o japonskom displeji

Kreslenie textu v MonoGame používa SpriteFont, rovnako ako XNA. Ďalšie informácie o vlastnostiach zariadenia SpriteFont sa nachádzajú v téme Zobrazovanie alfanumerických znakov a podrobností štýlu písma, pretože je to rovnaké ako XNA.

Ak používate SpriteFont, musíte zadať znaky, ktoré chcete použiť vopred. Ak je to len alfanumerické symboly, to môže byť vykonané s takmer bez nákladov ako špecifikáciu znaku a stavať čas, pretože je to asi 100 znakov, ale pokiaľ ide o japončinu, stáva sa tisíce znakov, takže doba zostavenia sa stáva veľmi dlho. Ak zadáte iba znaky, ktoré sa majú použiť, čas zostavenia sa môže do určitej miery skrátiť, ale je problematické určiť znak, ktorý sa má použiť v opačnom poradí, a ak dôjde k zmene znaku, ktorý sa má použiť, je problematické.

V reakcii na tento problém, "Ninari GD"miesto bolo prispôsobené tak, aby kreslenie japonskej v XNA plynulejšie (mimochodom, site-run Yuichi Ito - MSFT je jedným z vývojárov XNA Framework). To uľahčuje určenie znakov, ktoré sa majú použiť, skrátiť čas zostavenia, zdobiť znaky a ďalšie. Ďalšie informácie nájdete na odkaze.

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

Avšak, "WPF písma procesor" uvedené na stránke je pre XNA a nemôže byť použitý ako v MonoGame. Takže by som to rád pretášľil na MonoGame.

Stiahnite si wpf font procesor

Otvorte nasledujúce lokality:

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

Posuňte sa nadol na dva odkazy a kliknutím na prepojenie vyššie prevezmite projekt, ktorý obsahuje kód zoradenia. Nižšia je len DLL, takže nemusíte sťahovať.

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

Extrahujte prevzatý súbor, aby ste mohli načítať obsah.

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

Vytvorenie projektu procesora písiem WPF

Chcel by som vytvoriť WPF font procesor DLL, ktorý pracuje s "Akýkoľvek CPU", ale z nejakého dôvodu, keď som vytvoriť projekt s "Content Pipeline Extension Library" z XNA Framework, môžem len vytvoriť v x86, takže budem vytvárať z bežnej triedy knižnice tu.

クラス ライブラリの作成

Pri vytváraní projektu už nemusíte mať možnosť "Class1.cs", preto ho odstráňte.

「Class1.cs」の削除

Potom pridajte odkaz.

参照の追加

Keďže kreslíte text v wpf, budete potrebovať WPF-súvisiace odkaz. Po prvé, skontrolujte "PresentationCore" z "Framework".

「PresentationCore」にチェック

Potom skontrolujte "WindowsBase". Teraz stlačte tlačidlo OK pre potvrdenie a otvorenie Reference Manager znova.

「WindowsBase」にチェック

Vľavo vyberte položku Prehľadávať a kliknite na tlačidlo Prehľadávať nižšie.

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

Otvorte nasledujúcu cestu k priečinku:

  • C: Program Files (x86) MSBuild MonoGame v3.0 Nástroje \

Odtiaľ pridajte nasledujúce dva dll:

  • Súbor MonoGame.Framework.dll
  • MonoGame.Framework.Content.Pipeline.dll MonoGame.Framework.Content.Pipeline.dll MonoGame.Framework.Content.Pipeline.dll MonoGame

2つの DLL を追加

Skontrolujte, či je začiarknutá, a kliknite na tlačidlo OK Tlačidlo.

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

Skontrolujte pridané odkazy.

追加された参照を確認

Pridajte zdrojový kód z priečinka "WpfFontPipeline" z projektu, ktorý ste prevzali do projektu, ktorý práve upravujete.

ソースコードを追加

Stav, ktorý ste pridali.

追加した状態

Skontrolujte, či je konfigurácia zostavy "Release" a "Any CPU".

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

Vykonajte zostavu, aby ste zistili, či bola úspešne postavená.

ビルド結果

DLL je vytvorený.

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

Vytvorenie herného projektu

Vytvorte projekt pre MonoGame. Nezáleží na tom, aká je to platforma.

MonoGame のプロジェクトを作成

Umiestnite knižnicu DLL, ktorú ste práve vytvorili, do priečinka Obsah. Nezáleží na tom, kde dll je, ale v tomto prípade budete potrebovať relatívnu alebo absolútnu cestu, takže nechám to tu pre túto chvíľu.

 DLL を Content フォルダに配置

Otvorte súbor Content.mgcb a otvorte odkazy s vybratým obsahom.

Ak dvakrát kliknete na "Content.mmcb" otvoriť, spustite "MonoGame pipeline" z ponuky Štart.

References を開く

Do textového poľa zadajte názov súboru knižnice DLL, ktorú ste práve vytvorili, alebo cestu relatívnu alebo absolútnu cestu z Content.mgcb.

Po nastavení, DLL stále neodráža, takže akonáhle uložíte projekt, ukončite monoGame pipeline a znova ho otvorte.

DLL のファイル名を入力

Vytvorí písmo sprite. V menu vyberte "Upraviť" "Pridať→Novú položku.

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

Vyberte "SpriteFont Popis" z položiek ho pridať. (Mimochodom, po pridaní SpriteFont, otvoril som spriteFont súbor, aby bolo jednoduchšie vidieť v čase behu a zmenil názov písma a veľkosť.)

「SpriteFont Description」を選択

Ak vyberiete SpriteFont, ktorý ste pridali, uvidíte, že WPF písma procesor je k dispozícii z procesora.

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

Vzhľadom k tomu, každý parameter môže byť nastavený, tentoraz som sa snažil nastaviť, ako je znázornené na obrázku v súčasnosti. Bohužiaľ, nemôžete zmeniť farbu v aktuálnej verzii MonoGame Pipeline.

各パラメータ設定

Snažte sa stavať. 6860 znakov boli postavené, pretože to zahŕňalo až JIS úroveň 2. Napriek tomu, čas je asi deväť sekúnd, takže môžete vidieť, že je to docela rýchlo.

ビルド完了

Teraz sme kreslenie pomocou tohto SpriteFont, a kód je presne rovnaký ako XNA. Text môžete nakresliť pomocou kódu zavedeného v "Zobraziť alfanumerické znaky", ako to je. Samozrejme, japonci je tiež možné.

Chcel by som dať len kód, ktorý som pridal raz.

Časť poľa s definíciou. "SpriteFont" bol pridaný.

GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

SpriteFont font;

Načítava sa a vytvára údaje písma v metó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");
}

Kreslenie s japončinou v metóde 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);
}

Po vykonaní sa text nakresle. Je to trochu ťažké pochopiť, ale písmená majú hranice a modré gradácie vnútri.

Stalo sa ľahké kresliť japonskej tak, ako je tento, a to stalo sa možné nakresliť charakter s dekoráciou.

テキストの描画結果

Nakoniec nemôžete zmeniť farbu textovej dekorácie na monoGame Pipeline, ale môžete otvoriť súbor priamo a upraviť ho.

Po uložení a zatvorení projektu otvorte súbor .mccb ako textový súbor.

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

Ak sa posuniete nadol, v cieľovom parametri sú informácie o farbe, preto ich prosím upravte priamo tam.

色情報を直接編集

Po uložení textu znova otvorte monoGame Pipeline a zostavte ho. Môžete vidieť, že farba sa zmenila, keď ju spustíte.

色変更したテキスト