Išplėstinis japonų kalbos rodymas naudojant pasirinktinius turinio procesorius

Puslapis atnaujintas :
Puslapio sukūrimo data :

Apie japonišką ekraną

Teksto piešinys MonoGame naudoja SpriteFont taip pat XNA. SpriteFont, peržiūrėkite Rodyti raidinius ir skaitmeninius simbolius ir šrifto stilių duomenys, nes jis yra toks pat kaip XNA.

Jei naudojate SpriteFont, turite nurodyti simbolius, kuriuos norite naudoti iš anksto. Jei tai tik raidiniai ir skaitiniai simboliai, tai gali būti padaryta beveik be jokių išlaidų, kaip simbolių specifikacija ir sukurti laiko, nes jis yra apie 100 simbolių, bet kai kalbama apie japonų, ji tampa tūkstančiai simbolių, todėl kūrimo laikas tampa labai ilgas. Jei nurodysite tik naudotini simbolius, kūrimo laikas gali būti sutrumpintas iki tam tikro masto, tačiau sunku nurodyti simbolį, kuris bus naudojamas atvirkščiai, ir jis tampa dar labiau varginantis, jei pasikeičia naudotinas simbolis.

Reaguodama į šią problemą, "Ninari GD"svetainė buvo pritaikyta, kad piešimo japonų XNA sklandžiau (beje, svetainės paleisti Yuichi Ito - MSFT yra vienas iš XNA pagrindų kūrėjams). Tai leidžia lengviau nurodyti simbolius, kurie bus naudojami, sutrumpinti komponavimo versijos laiką, papuošti simbolius ir dar daugiau. Daugiau informacijos rasite nuorodoje.

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

Tačiau puslapyje pateiktas "WPF šriftų procesorius" skirtas XNA ir negali būti naudojamas taip, kaip yra MonoGame. Taigi, norėčiau perkelti tai į MonoGame.

Atsisiųskite WPF šriftų procesorių

Atidarykite šias svetaines:

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

Slinkite žemyn iki dviejų saitų ir spustelėkite aukščiau esantį saitą, kad atsisiųstumėte projektą, kuriame yra rūšiavimo kodas. Mažesnis yra tik DLL, todėl jums nereikia jo atsisiųsti.

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

Išskleiskite atsisiųstą failą, kad galėtumėte gauti turinį.

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

WPF šriftų procesoriaus projekto kūrimas

Norėčiau sukurti WPF šriftų procesoriaus DLL, kuris dirba su "Bet cpu", bet dėl tam tikrų priežasčių, kai aš sukurti projektą su "Turinio vamzdynų pratęsimo biblioteka" iš XNA pagrindų, galiu jį sukurti tik x86, todėl aš jį sukurti iš reguliaraus klasės biblioteka čia.

クラス ライブラリの作成

Kai kuriate projektą, jums nereikia "Class1.cs", todėl jį panaikinkite.

「Class1.cs」の削除

Tada pridėkite nuorodą.

参照の追加

Kadangi piešiate tekstą WPF, jums reikia wpf susijusios nuorodos. Pirmiausia patikrinkite "PresentationCore" iš "Pagrindų".

「PresentationCore」にチェック

Tada patikrinkite "WindowsBase". Dabar paspauskite OK mygtuką, kad patvirtintumėte ir vėl atidarytumėte reference manager.

「WindowsBase」にチェック

Kairėje pasirinkite Naršyti ir spustelėkite žemiau esantį mygtuką Naršyti.

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

Atidarykite šį aplanko maršrutą:

  • C:\Program Files(x86)\MSBuild\MonoGame\v3.0\Tools\

Iš ten, pridėti šiuos du dll:

  • MonoGame.Framework.dll (Lietuvių)
  • MonoGame.Framework.Content.Pipeline.dll MonoGame.Framework.Content.Pipeline.dll MonoGame.Framework.Content.Pipeline.dll MonoGame

2つの DLL を追加

Įsitikinkite, kad jis yra pažymėtas ir spustelėkite ok mygtuką.

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

Peržiūrėkite pridėtas nuorodas.

追加された参照を確認

Pridėkite šaltinio kodą iš aplanko "WpfFontPipeline" iš projekto, kurį atsisiuntėte į projektą, kurį šiuo metu redaguojate.

ソースコードを追加

Pridėta būsena.

追加した状態

Patikrinkite, ar komponavimo versijos konfigūracija yra "Išleidimo" ir "bet cpu".

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

Atlikite komponavimo versiją, kad pamatytumėte, ar ji buvo sukurta sėkmingai.

ビルド結果

DLL sukuriamas.

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

Žaidimo projekto kūrimas

Sukurkite MonoGame projektą. Nesvarbu, kokia platforma ji yra.

MonoGame のプロジェクトを作成

Įdėkite DLL, kurį ką tik sukūrėte aplanke Turinys. Nesvarbu, kur yra DLL, bet tokiu atveju jums reikės santykinio ar absoliutaus kelio, todėl paliksiu jį čia dabar.

 DLL を Content フォルダに配置

Atidarykite Content.mgcb ir atidarykite Nuorodos su pasirinktu turiniu.

Jei dukart spustelėsite "Content.mmcb", kad jo neatidarytumėte, pradžios meniu pradėkite "MonoGame Pipeline".

References を開く

Teksto lauke įveskite ką tik sukurto DLL failo vardą arba kelią, susijusį su Content.mgcb arba absoliučiuoju keliu.

Po to, kai jį nustatėte, DLL vis tiek neatspindi, todėl, kai įrašote projektą, išeikite iš monoGame srauto ir vėl jį atidarykite.

DLL のファイル名を入力

Sukuria sprite šriftą. Meniu pasirinkite "Redaguoti" >Pridėti → naują elementą.

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

Pasirinkite "SpriteFont Aprašymas" iš elementų, kuriuos norite jį įtraukti. (Beje, pridėjus SpriteFont, aš atidariau SpriteFont failą, kad būtų lengviau pamatyti vykdymo metu ir pakeitė šrifto pavadinimą ir dydį.)

「SpriteFont Description」を選択

Jei pasirinksite SpriteFont, kurį įtraukėte, pamatysite, kad WPF šriftų procesorius yra iš procesoriaus.

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

Kadangi kiekvienas parametras gali būti nustatytas, šį kartą bandžiau jį nustatyti, kaip parodyta paveikslėlyje šiuo metu. Deja, jūs negalite pakeisti dabartinės MonoGame vamzdyno versijos spalvos.

各パラメータ設定

Pabandykite sukurti. 6860 simbolių buvo pastatytas, nes ji įtraukta iki JIS lygio 2. Vis dėlto, laikas yra apie devynias sekundes, todėl jūs galite pamatyti, kad tai gana greitai.

ビルド完了

Dabar mes piešimo naudojant šį SpriteFont, ir kodas yra lygiai toks pat kaip XNA. Galite piešti tekstą naudodami kodą, įvestą "Rodyti raidinius ir skaitmeninius simbolius". Žinoma, taip pat įmanoma japonų.

Norėčiau įdėti tik kodą, kurį pridėjau vieną kartą.

Lauko apibrėžimo dalis. Pridėta "SpriteFont".

GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

SpriteFont font;

Įkeliami ir kuriami šrifto duomenys "LoadContent" metodu.

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");
}

Piešimas su japonų kalba piešimo metodu.

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);
}

Vykdant tekstą. Tai šiek tiek sunku suprasti, bet raidės turi sienas ir mėlynos gradacijos viduje.

Tapo lengva piešti japonų kaip šis, ir tapo įmanoma atkreipti charakterį su apdaila.

テキストの描画結果

Galiausiai, jūs negalite pakeisti teksto apdailos spalvą monoGame Pipeline, bet jūs galite atidaryti failą tiesiogiai ir jį modifikuoti.

Įrašę ir uždaryę projektą, atidarykite .mccb failą kaip tekstinį failą.

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

Jei slinkite žemyn, tiksliniame parametre yra spalvų informacija, todėl redaguokite ją tiesiai ten.

色情報を直接編集

Išsaugojus tekstą, vėl atidarykite monoGame Pipeline ir sukurkite jį. Galite matyti, kad paleidus spalvą ji pasikeitė.

色変更したテキスト