Display giapponese avanzato con processori di contenuti personalizzati
Informazioni sulla visualizzazione giapponese
Disegno di testo in MonoGame utilizza SpriteFont così come XNA. Per SpriteFont, vedere Visualizzazione di caratteri alfanumerici e dettagli dello stile del carattere, in quanto corrisponde a XNA.
Se si utilizza SpriteFont, è necessario specificare i caratteri che si desidera utilizzare in anticipo. Se si tratta solo di simboli alfanumerici, può essere fatto senza alcun costo come specifica di carattere e tempo di costruzione perché è di circa 100 caratteri, ma quando si tratta di giapponese, diventa migliaia di caratteri, quindi il tempo di costruzione diventa estremamente lungo. Se si specificano solo i caratteri da utilizzare, il tempo di compilazione può essere ridotto in una certa misura, ma è problematico specificare il carattere da utilizzare in senso inverso e diventa ancora più problematico se si verifica un cambiamento nel carattere da utilizzare.
In risposta a questo problema, il sito "Ninari GD"è stato personalizzato per rendere il disegno giapponese in XNA più agevole (a proposito, il sito-run Yuichi Ito - MSFT è uno degli sviluppatori di XNA Framework). In questo modo è più semplice specificare i caratteri da utilizzare, ridurre il tempo di compilazione, decorare i caratteri e altro ancora. Per ulteriori informazioni, fare riferimento al link.
Tuttavia, il "processore di tipi di carattere WPF" presentato nella pagina è per XNA e non può essere utilizzato come in MonoGame.However, the "WPF font processor" presented in the page is for XNA and cannot be used as is in MonoGame. Quindi mi piacerebbe portare questo a MonoGame.
Scaricare il processore dei tipi di carattere WPFDownload the WPF Font Processor
Aprire i seguenti siti:
Scorrere verso il basso fino a due collegamenti e fare clic sul collegamento precedente per scaricare il progetto che contiene il codice di ordinamento. Quello inferiore è solo una DLL, quindi non è necessario scaricarlo.
Estrarre il file scaricato in modo da poter recuperare il contenuto.
Creare un progetto processore di tipi di carattere WPFCreate a WPF Font Processor Project
Vorrei creare una DLL del processore di tipi di carattere WPF che funziona con "Qualsiasi CPU", ma per qualche motivo quando si crea un progetto con la "Content Pipeline Extension Library" di XNA Framework, è possibile creare solo in x86, quindi verrà creato da una libreria di classi regolare qui.
Quando crei un progetto, non hai bisogno di "Class1.cs", quindi eliminalo.
Successivamente, aggiungere un riferimento.
Poiché si disegna testo in WPFWPF, è necessario un riferimento correlato a WPFWPF. In primo luogo, selezionare "PresentationCore" da "Framework".
Successivamente, selezionare "WindowsBase". Ora premere il pulsante OK per confermare e aprire nuovamente Gestione riferimenti.
Selezionare Sfoglia a sinistra e fare clic sul pulsante Sfoglia qui sotto.
Aprire il seguente percorso di cartella:
- C: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Da lì, aggiungere le seguenti due DLL:
- MonoGame.Framework.dll
- MonoGame.Framework.Content.Pipeline.dll
Assicurarsi che sia selezionata e fare clic sul pulsante OK.
Esaminare i riferimenti che sono stati aggiunti.
Aggiungere il codice sorgente dalla cartella "WpfFontPipeline" dal progetto scaricato al progetto che si sta modificando.
Stato aggiunto.
Verificare che la configurazione di compilazione sia "Release" e "Any CPU".
Eseguire una compilazione per verificare se è stata compilata correttamente.
Viene creata la DLL.
Creare un progetto di gioco
Creare un progetto per MonoGame.Create a project for MonoGame. Non importa quale piattaforma sia.
Inserire la DLL appena creata nella cartella Contenuto. Non importa dove si trova la DLL, ma in questo caso avrete bisogno di un percorso relativo o assoluto, quindi lascio qui per ora.
Aprire Content.mgcb e aprire Riferimenti con contenuto selezionato.
Se si fa doppio clic su "Content.mmcb" per non aprirlo, avviare "MonoGame Pipeline" dal menu Start.
Nella casella di testo digitare il nome file della DLL appena creata o il percorso relativo o assoluto dal file Content.mgcb.
Dopo averlo configurato, la DLL ancora non riflette, in modo che una volta salvato il progetto, uscire monoGame Pipeline e riaprirlo.
Crea un tipo di carattere sprite. Dal menu, selezionare "Modifica" >Aggiungi/Nuova voce.
Selezionare "Descrizione SpriteFont" tra gli elementi da aggiungere. (Incidentalmente, dopo l'aggiunta di SpriteFont, ho aperto il file SpriteFont per renderlo più facile da vedere in fase di esecuzione e cambiato il nome del carattere e la dimensione.)
Se si seleziona il SpriteFont che è stato aggiunto, si noterà che il processore di font WPF è disponibile dal processore.
Poiché ogni parametro può essere impostato, questa volta ho provato a impostarlo come mostrato nella figura per il momento. Sfortunatamente, non è possibile modificare il colore nella versione corrente di MonoGame Pipeline.
Prova a costruire. 6860 caratteri sono stati costruiti perché incluso fino al livello JIS 2. Tuttavia, il tempo è di circa nove secondi, quindi si può vedere che è abbastanza veloce.
Ora, stiamo disegnando usando questo SpriteFont, e il codice è esattamente lo stesso di XNA. È possibile disegnare testo utilizzando il codice introdotto in "Visualizza caratteri alfanumerici" così com'è. Naturalmente, il giapponese è anche possibile.
Vorrei mettere solo il codice che ho aggiunto una volta.
Parte di definizione del campo. "SpriteFont" è stato aggiunto.
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
SpriteFont font;
Caricamento e creazione di dati del tipo di carattere nel metodo 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");
}
Disegno con giapponese nel metodo Draw.
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);
}
Quando viene eseguito, viene disegnato il testo. È un po' difficile da capire, ma le lettere hanno bordi e gradazioni blu all'interno.
E 'diventato facile disegnare giapponese come questo, ed è diventato possibile disegnare il personaggio con la decorazione.
Infine, non è possibile modificare il colore della decorazione del testo su monoGame Pipeline, ma è possibile aprire direttamente il file e modificarlo.
Dopo aver salvato e chiuso il progetto, aprire il file .mccb come file di testo.
Se scorri verso il basso, ci sono informazioni sul colore nel parametro di destinazione, quindi si prega di modificarlo direttamente lì.
Dopo aver salvato il testo, aprire nuovamente monoGame Pipeline e compilarlo. Si può vedere che il colore è cambiato quando lo si esegue.