Fejlett japán megjelenítés egyéni tartalomprocesszorokkal
Japán kijelző – 9.
Szöveg rajz MonoGame használ SpriteFont, valamint az XNA. A SpriteFont(spriteFont) témakörben az Alfanumerikus karakterek és a betűstílus részleteinek megjelenítése című témakörben található, mivel az megegyezik az XNA-val.
A SpriteFont használata esetén előre meg kell adnia a használni kívánt karaktereket. Ha ez csak alfanumerikus szimbólumok, akkor lehet tenni szinte költség nélkül, mint a karakter specifikáció és építési idő, mert körülbelül 100 karakter, de amikor a japán, akkor lesz több ezer karakter, így a build idő lesz rendkívül hosszú. Ha csak a használandó karaktereket adja meg, a létrehozási idő bizonyos mértékig lerövidíthető, de problémás a fordítva használandó karaktert megadni, és még zavaróbbá válik, ha a karakter megváltozik.
Válaszul erre a problémára, "Ninari GD"oldalon van testre, hogy rajz japán XNA simábban (egyébként, az oldal-run Yuichi Ito - MSFT az egyik XNA Framework fejlesztők). Ez megkönnyíti a használandó karakterek megadását, a létrehozási idő lerövidítését, a karakterek díszítését stb. További információkért kérjük, olvassa el a linket.
Az oldalon bemutatott "WPF betűkészlet-feldolgozó" azonban az XNA-ra szolgál, és nem használható a MonoGame játékhoz. Szóval szeretném ezt a MonoGame-re átportálni.
A WPF betűtípus-processzor letöltése
Nyissa meg a következő webhelyeket:
Görgessen le két hivatkozásra, és kattintson a fenti hivatkozásra a rendezési kódot tartalmazó projekt letöltéséhez. Az alsó csak egy DLL, így nem kell letölteni.
Kérjük, bontsa ki a letöltött fájlt, hogy visszatudja kérni a tartalmat.
WPF-betűtípus-processzorprojekt létrehozása
Szeretnék létrehozni egy WPF font processzor DLL, hogy működik a "Minden CPU", de valamilyen oknál fogva, amikor létrehozegy projektet a "Content Pipeline Extension Library" az XNA Framework, én csak létre x86, úgyhogy létre azt a rendszeres osztály könyvtár itt.
Amikor létrehoz egy projektet, nincs szükség "Class1.cs", ezért törölje azt.
Ezután adjon hozzá egy hivatkozást.
Mivel a WPF-ben rajzol szöveget, WPF-mel kapcsolatos referenciára van szükség. Először is, ellenőrizze a "PresentationCore" a "Framework".
Ezután ellenőrizze a "WindowsBase" gombot. Most nyomja meg az OK gombot a Referenciakezelő megerősítéséhez és újbóli megnyitásához.
Válassza a bal oldali Tallózás lehetőséget, majd kattintson az alábbi Tallózás gombra.
Nyissa meg a következő mappaelérési utat:
- C:\Program Files(x86)\MSBuild\MonoGame\v3.0\Tools\
Innen adja hozzá a következő két DL-t:
- MonoGame.Framework.dll
- MonoGame.Framework.Content.Pipeline.dll
Ellenőrizze, hogy be van-e jelölve, és kattintson az OK gombra.
Tekintse át a hozzáadott hivatkozásokat.
Adja hozzá a forráskódot a "WpfFontPipeline" mappából a letöltött projektből a jelenleg szerkesztett projekthez.
Az állapot, amit hozzáadott.
Ellenőrizze, hogy a buildkonfiguráció "Release" és "Any CPU".
Hajtsa végre a buildet, hogy lássa, sikeresen készült-e.
DLL jön létre.
Játékprojekt létrehozása
Hozzon létre egy projektet a MonoGame számára. Nem számít, milyen platform.
Helyezze az imént létrehozott DLL-t a Tartalom mappába. Nem számít, hol van a DLL, de ebben az esetben szüksége lesz egy relatív vagy abszolút utat, úgyhogy itt hagyom egyelőre.
Nyissa meg a Content.mgcb-et, és nyissa meg a Kijelölt tartalommal rendelkező hivatkozásokat.
Ha duplán kattint a "Content.mmcb" gombra, hogy ne nyissa meg, indítsa el a "MonoGame Pipeline" menüt a Start menüből.
A szövegmezőbe írja be az imént létrehozott DLL fájlnevét, vagy a Content.mgcb fájlhoz viszonyított vagy abszolút elérési utat.
A beállítás után a DLL továbbra sem jelenik meg, ezért a projekt mentése után lépjen ki a monoGame pipeline-ból, és nyissa meg újra.
Sprite betűtípust hoz létre. Válassza a menü "Szerkesztés"
Válassza ki a "SpriteFont Description" közül az elemek közül hozzá. (Egyébként, hozzáadása után SpriteFont, kinyitottam a SpriteFont fájlt, hogy könnyebb en sióválni futásidőben, és megváltoztatta a betűtípus nevét és méretét.)
Ha kiválasztja a hozzáadott SpriteFont-ot, látni fogja, hogy a WPF betűkészlet-processzor elérhető a processzorból.
Mivel minden paraméter beállítható, ezúttal megpróbáltam beállítani, ahogy az ábrán látható. Sajnos a MonoGame Pipeline jelenlegi verziójának színét nem lehet megváltoztatni.
Próbálj meg építeni. 6860 karakter azért készült, mert a JIS 2-es szintjéig szerepelt. Mégis, az idő körülbelül kilenc másodperc, így láthatja, hogy elég gyors.
Ezzel a SpriteFont-tal rajzolunk, és a kód pontosan ugyanaz, mint az XNA. A szöveget az "Alfanumerikus karakterek megjelenítése" című részben bemutatott kód dal rajzolhatja meg. Természetesen, japán is lehetséges.
Szeretném, hogy csak a kódot, amit hozzá egyszer.
A mező definíciós része. "SpriteFont" került.
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
SpriteFont font;
Betűtípusadatok betöltése és létrehozása a LoadContent metódusban.
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");
}
Rajzolás japán nyelvvel a Draw metódusban.
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);
}
Végrehajtáskor a program megrajzolja a szöveget. Egy kicsit nehéz megérteni, de a betűknek vannak határai és kék átmenetei.
Ez lett könnyű felhívni a japán, mint ez, és lehetővé vált, hogy dolgozzon a karakter a díszítéssel.
Végül nem módosíthatja a szövegdekoráció színét a monoGame pipeline-on, de közvetlenül megnyithatja és módosíthatja a fájlt.
Miután mentette és bezárta a projektet, nyissa meg a .mccb fájlt szöveges fájlként.
Ha lefelé görget, a célparaméter színinformációval rendelkezik, ezért kérjük, közvetlenül ott szerkeszthesse.
A szöveg mentése után nyissa meg újra a monoGame pipeline-t, és építse meg. Láthatja, hogy a szín megváltozott, amikor futtatja.