Pantalla japonesa avançada mitjançant processadors de contingut personalitzats
Sobre la pantalla japonesa
El dibuix de text en MonoGame utilitza SpriteFont i XNA. Per a SpriteFont, vegeu mostrar caràcters alfanumèrics i detalls d'estil de font, ja que és el mateix que XNA.
Si utilitzeu SpriteFont, heu d'especificar els caràcters que voleu utilitzar amb antelació. Si és només símbols alfanumèrics, es pot fer gairebé sense cost com a especificació de caràcter i temps de complexió perquè és sobre 100 caràcters, però quan arriba a japonès, es converteix en milers de caràcters, així el temps de complexió es fa extremadament molt de temps. Si només Especifiqueu els caràcters que s'utilitzaran, el temps de compilació es pot escurçar fins a cert punt, però és molest per especificar el caràcter que s'utilitzarà a l'inrevés, i es torna encara més molest si hi ha un canvi en el caràcter que s'utilitzarà.
En resposta a aquest problema, el lloc "Ninari gd"s'ha personalitzat per fer el dibuix japonès en XNA més suaument (per cert, el lloc de Run Yuichi Ito-MSFT és un dels desenvolupadors de l'estructura XNA). Això fa que sigui més fàcil especificar els caràcters que s'utilitzen, escurçar el temps de compilació, decorar els caràcters, i molt més. Per a més informació, consulteu l'enllaç.
Tanmateix, el "processador de font de WPF" presentat a la pàgina és per a XNA i no es pot utilitzar com és en Monojoc. Així m'agradaria portar això a MonoGame.
Descarregui el processador de font de WPF
Obriu els següents llocs:
Desplaceu-vos cap avall fins a dos enllaços i feu clic a l'enllaç anterior per baixar el projecte que conté el codi d'ordenació. El més baix és només un DLL, així no l'ha de descarregar.
Si us plau, extraieu el fitxer descarregat de manera que pugueu recuperar el contingut.
Creï un projecte de processadors de font de WPF
Tenia com crear un DLL de processador de font de WPF que funciona amb "qualsevol CPU", però per una mica de raó quan creo un projecte amb la "biblioteca d'ampliació de canalització de contingut" de l'estructura de XNA, només el puc crear en x86, així el crearé des d'una biblioteca de classe regular aquí.
Quan crees un projecte, no necessites "Class1.cs", per tant, suprimeix-lo.
A continuació, afegiu una referència.
Com que dibuixeu text a WPF, necessitareu una referència relacionada amb el WPF. En primer lloc, marqueu "PresentationCore" de "Framework".
Després, comprovi "WindowsBase". Ara premeu el botó d'acord per confirmar i tornar a obrir el gestor de referències.
Seleccioneu navega a l'esquerra i feu clic al botó Navega a sota.
Obriu la ruta següent de la carpeta:
- C:\Program files (x86) \MSBuild\MonoGame\v3.0\Tools\
Des d'allà, afegeixi els dos DLLs següents:
- Monojoc. Framework. dll
- Monojoc. Framework. content. pipeline. dll
Asseguri's que estigui comprovat i faci clic al botó correcte.
Revisar les referències que s'han afegit.
Afegiu el codi font de la carpeta "WpfFontPipeline" del projecte que heu baixat al projecte que esteu editant.
L'estat que heu afegit.
Verifiqueu que la configuració de la compilació sigui "release" i "qualsevol CPU".
Realitzeu una compilació per veure si s'ha construït correctament.
Es crea la DLL.
Crear un projecte de joc
Crear un projecte per Monojoc. No importa quina plataforma és.
Posi el DLL que només creava a la carpeta de contingut. No importa on és la DLL, però en aquest cas es necessita un camí relatiu o absolut, així que vaig a deixar-ho aquí per ara.
Contingut obert. mgcb i les referències obertes amb el contingut seleccionat.
Si feu doble clic a "content. mmcb" per no obrir-lo, inicieu "MonoGame pipeline" des del menú d'inici.
En el quadre de text, escrigui el nom d'arxiu del DLL que només creava, o el camí relatiu o camí absolut des de content. mgcb.
Després que l'estableixi, el DLL encara no reflecteix, així una vegada que estalvia el projecte, la canonada de monoGame de sortida i reobre'l.
Crea una font de sprite. Seleccioni "editar" > afegir → element nou del menú.
Seleccioneu "SpriteFont Description" d'entre els elements per afegir-lo. (Per cert, després d'afegir SpriteFont, vaig obrir l'arxiu SpriteFont perquè sigui més fàcil de veure en el temps d'execució i va canviar el nom i la mida de la font.)
Si seleccioneu el SpriteFont que heu afegit, veureu que el processador de tipus de lletra del WPF està disponible al processador.
Atès que cada paràmetre es pot establir, aquesta vegada vaig tractar d'establir com es mostra a la figura de moment. Malauradament, no es pot canviar el color en la versió actual de la canonada de MonoGame.
Intenta construir. es van construir 6860 caràcters perquè incloïa el nivell 2 de JIS. No obstant això, el temps és d'uns nou segons, de manera que es pot veure que és bastant ràpid.
Ara, estem dibuixant l'ús d'aquest SpriteFont, i el codi és exactament el mateix que XNA. Podeu dibuixar text utilitzant el codi introduït a "Mostra els caràcters alfanumèrics" tal com és. Per descomptat, el japonès també és possible.
Tenia com posar només el codi que afegia una vegada.
La part de definició del camp. "SpriteFont" s'ha afegit.
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
SpriteFont font;
Càrrega i creació de dades de tipus de lletra en el mètode de LoadContent.
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");
}
Dibuix amb japonès en el mètode dibuixa.
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);
}
En executar-lo, es dibuixa el text. És una mica difícil d'entendre, però les lletres tenen vores i gradacions blaves a l'interior.
Es va fer fàcil dibuixar japonès com aquest, i es va fer possible dibuixar el personatge amb la decoració.
Finalment, no es pot canviar el color de la decoració del text en la canonada de Monojoc, però vostè pot obrir el fitxer directament i modificar-lo.
Una vegada que ha estalviat i ha tancat el projecte, obri l'arxiu de. mccb com a arxiu de text.
Si desplaceu-vos cap avall, hi ha informació de color al paràmetre de destinació, així que si us plau editeu-lo directament allà.
Després de desar el text, obriu la canonada de Monojoc i creeu-lo. Podeu veure que el color ha canviat quan l'executeu.