Zobrazení pro pokročilou japonštinu pomocí vlastních procesorů obsahu
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.
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:
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.
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".
Dále zaškrtněte políčko "WindowsBase". Nyní stiskněte tlačítko OK pro potvrzení a opětovné otevření Správce odkazů.
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
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".
Proveďte sestavení a zjistěte, zda bylo vytvořeno úspěšně.
Knihovna DLL je vytvořena.
Vytvoření herního projektu
Vytvořte projekt pro MonoGame. Nezáleží na tom, jaká je platforma.
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.
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.
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.
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.)
Pokud vyberete SpriteFont, který jste přidali, uvidíte, že procesor písem WPF je k dispozici z procesoru.
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.
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í.