Fejlett japán megjelenítés egyéni tartalomprocesszorokkal

Oldal frissítve :
Oldal létrehozásának dátuma :

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.

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

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:

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

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.

「Class1.cs」の削除

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".

「PresentationCore」にチェック

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.

「WindowsBase」にチェック

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

2つの 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".

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

Hajtsa végre a buildet, hogy lássa, sikeresen készült-e.

ビルド結果

DLL jön létre.

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

Játékprojekt létrehozása

Hozzon létre egy projektet a MonoGame számára. Nem számít, milyen platform.

MonoGame のプロジェクトを作成

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.

 DLL を Content フォルダに配置

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.

References を開く

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.

DLL のファイル名を入力

Sprite betűtípust hoz létre. Válassza a menü "Szerkesztés" Új elem hozzáadása lehetőséget.

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

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.)

「SpriteFont Description」を選択

Ha kiválasztja a hozzáadott SpriteFont-ot, látni fogja, hogy a WPF betűkészlet-processzor elérhető a processzorból.

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

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.

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

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.

色変更したテキスト