Özel içerik işlemcileri kullanan gelişmiş Japonca ekran

Sayfa güncel :
Sayfa oluşturma tarihi :

Japon ekran hakkında

MonoGame metin çizim SpriteFont yanı sıra XNA kullanır. SpriteFont için, XNA ile aynı olduğu için Alfasayısal Karakterleri ve Yazı Tipi Stili Ayrıntılarını Görüntüleme'ye bakın.

SpriteFont kullanıyorsanız, kullanmak istediğiniz karakterleri önceden belirtmeniz gerekir. Sadece alfasayısal semboller ise, yaklaşık 100 karakter olduğu için bir karakter belirtimi ve inşa süresi olarak hemen hemen hiçbir maliyet ile yapılabilir, ancak Japonca söz konusu olduğunda, binlerce karakter olur, böylece inşa süresi son derece uzun olur. Yalnızca kullanılacak karakterleri belirtirseniz, yapı süresi bir dereceye kadar kısaltılabilir, ancak ters te kullanılacak karakteri belirtmek zahmetli olur ve kullanılacak karakterde bir değişiklik olduğunda daha da zahmetli olur.

Bu soruna yanıt olarak, "Ninari GD"sitesi XNA daha sorunsuz Japonca Çizim yapmak için özelleştirilmiştir (bu arada, site tarafından işletilen Yuichi Ito - MSFT XNA Çerçeve geliştiricilerden biridir). Bu, kullanılacak karakterleri belirtmeyi, yapı süresini kısaltmayı, karakterleri dekore etmeyi ve daha fazlasını kolaylaştırır. Daha fazla bilgi için lütfen bağlantıya bakın.

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

Ancak, sayfada sunulan "WPF yazı tipi işlemcisi" XNA içindir ve MonoGame'de olduğu gibi kullanılamaz. Bunu MonoGame'e taşımak istiyorum.

WPF Yazı İşlemcisi'ni indirin

Aşağıdaki siteleri açın:

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

İki bağlantıya gidin ve sıralama kodunu içeren projeyi indirmek için yukarıdaki bağlantıyı tıklatın. Alt olan sadece bir DLL, bu yüzden indirmek zorunda değilsiniz.

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

İçeriği alabilmeniz için lütfen indirilen dosyayı ayıklayın.

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

WPF Yazı Tipi İşlemcisi Projesi Oluşturma

Ben "Herhangi bir CPU" ile çalışan bir WPF yazı tipi işlemci DLL oluşturmak istiyorum, ama nedense ben XNA Çerçeve "İçerik Boru Hattı Uzantısı Kütüphanesi" ile bir proje oluşturmak, ben sadece x86 oluşturabilirsiniz, bu yüzden burada düzenli bir sınıf kütüphanesinden oluşturacağım.

クラス ライブラリの作成

Bir proje oluşturduğunuzda, "Class1.cs" gerekmez, bu nedenle silin.

「Class1.cs」の削除

Ardından, bir başvuru ekleyin.

参照の追加

WPF'de metin çizdiğiniz için WPF ile ilgili bir başvuruya ihtiyacınız var. İlk olarak, "Framework"den "PresentationCore"u işaretleyin.

「PresentationCore」にチェック

Ardından "WindowsBase" denetimine bakın. Şimdi Başvuru Yöneticisi'ni onaylamak ve yeniden açmak için Tamam düğmesine basın.

「WindowsBase」にチェック

Soldaki Gözat'ı seçin ve aşağıdaki Gözat düğmesine tıklayın.

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

Aşağıdaki klasör yolunu açın:

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

Oradan, aşağıdaki iki DLs ekleyin:

  • MonoGame.Framework.dll
  • MonoGame.Framework.Content.Pipeline.dll

2つの DLL を追加

Kontrol edildiklerden emin olun ve Tamam düğmesini tıklatın.

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

Eklenen başvuruları gözden geçirin.

追加された参照を確認

İndirdiğiniz projeden (WpfFontPipeline) klasöründen kaynak kodunu şu anda düzenlemekte olduğunuz projeye ekleyin.

ソースコードを追加

Eklediğiniz eyalet.

追加した状態

Yapı yapılandırmasının "Release" ve "Any CPU" olduğunu doğrulayın.

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

Başarılı bir şekilde oluşturulıp oluşturulmamasını görmek için bir yapı gerçekleştirin.

ビルド結果

DLL oluşturulur.

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

Bir oyun projesi oluşturma

MonoGame için bir proje oluşturun. Hangi platform olduğu önemli değil.

MonoGame のプロジェクトを作成

Oluşturduğunuz DLL'yi İçerik klasörüne yerleştirin. DLL'nin nerede olduğu önemli değil, ama bu durumda göreceli ya da mutlak bir yola ihtiyacın olacak, bu yüzden şimdilik burada bırakacağım.

 DLL を Content フォルダに配置

Content.mgcb'yi açın ve Seçili İçerikli Referansları Açın.

Açmamak için "Content.mmcb"ye çift tıklarsanız, Başlat menüsünden "MonoGame Pipeline"ı başlatın.

References を開く

Metin kutusuna, az önce oluşturduğunuz DLL'nin dosya adını veya Content.mgcb'den gelen veya mutlak yola göreolan yolu yazın.

Bunu ayarladıktan sonra, DLL hala yansıtmaz, bu nedenle projeyi kurtardıktan sonra monoGame Pipeline'dan çıkın ve yeniden açın.

DLL のファイル名を入力

Bir sprite yazı tipi oluşturur. Menüden "Edit" >Ekle→Yeni Öğe'yi seçin.

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

Eklemek için öğeler arasından "SpriteFont Açıklaması"nı seçin. (Bu arada, SpriteFont ekledikten sonra, daha kolay çalışma zamanında görmek için SpriteFont dosyasını açtı ve yazı tipi adı ve boyutunu değiştirdi.)

「SpriteFont Description」を選択

Eklediğiniz SpriteFont'u seçerseniz, WPF Font İşlemcisi'nin İşlemci'den edinilebilen bir kaynak olduğunu görürsünüz.

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

Her parametre ayarlanabildiği için, bu sefer şu an için şekilde gösterildiği gibi ayarlamaya çalıştım. Ne yazık ki, MonoGame Pipeline'ın geçerli sürümündeki rengi değiştiremezsiniz.

各パラメータ設定

İnşa etmeye çalış. 6860 karakter JIS seviye 2'ye kadar dahil olduğu için oluşturulmuş. Yine de, zaman yaklaşık dokuz saniye, bu yüzden oldukça hızlı olduğunu görebilirsiniz.

ビルド完了

Şimdi, bu SpriteFont'u kullanarak çizim yapıyoruz, ve kod XNA ile tamamen aynı. "Alfasayısal karakterleri görüntüle" kodu kullanarak metin çizebilirsiniz. Tabii ki, Japonca da mümkündür.

Sadece bir kez eklediğim kodu koymak istiyorum.

Alanın tanımı kısmı. "SpriteFont" eklendi.

GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

SpriteFont font;

LoadContent yönteminde yazı tipi verilerinin yüklenmesi ve oluşturulması.

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

Draw yönteminde Japonca ile çizim.

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

Yürütüldüğünde, metin çizilir. Anlamak biraz zor ama harflerin içinde kenarlıklar ve mavi geçişler var.

Bu şekilde Japonca çizmek kolay laştı ve karakteri dekorasyonla çizmek mümkün oldu.

テキストの描画結果

Son olarak, monoGame Pipeline'daki metin dekorasyonunun rengini değiştiremezsiniz, ancak dosyayı doğrudan açıp değiştirebilirsiniz.

Projeyi kaydedip kapattıktan sonra .mccb dosyasını metin dosyası olarak açın.

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

Aşağı kaydırırsanız, hedef parametrede renk bilgileri vardır, bu nedenle lütfen doğrudan orada edin.

色情報を直接編集

Metni kurtardıktan sonra monoGame Pipeline'ı yeniden açın ve oluşturun. Çalıştırdığınızda rengin değiştiğini görebilirsiniz.

色変更したテキスト