Pokročilé japonské zobrazenie pomocou vlastných procesorov obsahu
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.
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:
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.
Potom pridajte odkaz.
Keďže kreslíte text v wpf, budete potrebovať WPF-súvisiace odkaz. Po prvé, skontrolujte "PresentationCore" z "Framework".
Potom skontrolujte "WindowsBase". Teraz stlačte tlačidlo OK pre potvrdenie a otvorenie Reference Manager znova.
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
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".
Vykonajte zostavu, aby ste zistili, či bola úspešne postavená.
DLL je vytvorený.
Vytvorenie herného projektu
Vytvorte projekt pre MonoGame. Nezáleží na tom, aká je to platforma.
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.
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.
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.
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ť.)
Ak vyberiete SpriteFont, ktorý ste pridali, uvidíte, že WPF písma procesor je k dispozícii z procesora.
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.
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.