Išplėstinis japonų kalbos rodymas naudojant pasirinktinius turinio procesorius
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.
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:
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.
Tada pridėkite nuorodą.
Kadangi piešiate tekstą WPF, jums reikia wpf susijusios nuorodos. Pirmiausia patikrinkite "PresentationCore" iš "Pagrindų".
Tada patikrinkite "WindowsBase". Dabar paspauskite OK mygtuką, kad patvirtintumėte ir vėl atidarytumėte reference manager.
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
Į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".
Atlikite komponavimo versiją, kad pamatytumėte, ar ji buvo sukurta sėkmingai.
DLL sukuriamas.
Žaidimo projekto kūrimas
Sukurkite MonoGame projektą. Nesvarbu, kokia platforma ji yra.
Į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.
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".
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.
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į.)
Jei pasirinksite SpriteFont, kurį įtraukėte, pamatysite, kad WPF šriftų procesorius yra iš procesoriaus.
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ą.
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ė.