การแสดงผลภาษาญี่ปุ่นขั้นสูงโดยใช้ตัวประมวลผลเนื้อหาที่กําหนดเอง
เกี่ยวกับญี่ปุ่นแสดง
การวาดข้อความใน MonoGame ใช้สปริทฟอนท์และ XNA สําหรับ SpriteFont ให้ดูการแสดงตัวอักษรและตัวเลขและรายละเอียดของลักษณะแบบอักษรเช่นเดียวกับ XNA
ถ้าคุณใช้ SpriteFont คุณต้องระบุอักขระที่คุณต้องการใช้ล่วงหน้า ถ้าเป็นเพียงสัญลักษณ์ตัวอักษรและตัวเลขก็สามารถทําได้ด้วยค่าใช้จ่ายเกือบจะไม่เป็นข้อกําหนดของตัวละครและสร้างเวลาเพราะมันเป็นเรื่องเกี่ยวกับ 100 ตัวอักษร แต่เมื่อมันมาถึงภาษาญี่ปุ่นก็จะกลายเป็นพันของตัวอักษรเพื่อให้เวลาสร้างกลายเป็นยาวมาก ถ้าคุณระบุเฉพาะอักขระที่จะใช้เวลาสร้างสามารถสั้นลงได้ในระดับหนึ่ง แต่ลําบากในการระบุอักขระที่จะใช้ในการย้อนกลับและมันจะกลายเป็นลําบากมากขึ้นหากมีการเปลี่ยนแปลงในอักขระที่จะใช้
ในการตอบสนองต่อปัญหานี้เว็บไซต์"Ninari GD"ได้รับการปรับแต่งเพื่อให้การวาดภาพภาษาญี่ปุ่นใน XNA ได้อย่างราบรื่นมากขึ้น (โดยวิธีการเว็บไซต์ที่เรียกใช้ Yuichi Ito - MSFT เป็นหนึ่งในนักพัฒนา XNA Framework) ทําให้ง่ายต่อการระบุตัวอักษรที่จะใช้, ลดเวลาการสร้าง, ตกแต่งตัวอักษร, และอื่น ๆ. สําหรับข้อมูลเพิ่มเติม โปรดดูที่ลิงค์
อย่างไรก็ตาม "ตัวประมวลผลแบบอักษร WPF" ที่นําเสนอในหน้าเว็บสําหรับ XNA และไม่สามารถใช้เป็นอยู่ใน MonoGame ดังนั้นฉันต้องการจะพอร์ตนี้ไปยัง MonoGame
ดาวน์โหลดตัวประมวลผลแบบอักษร WPF
เปิดไซต์ต่อไปนี้:
เลื่อนลงไปที่สองลิงค์และคลิกที่ลิงค์ด้านบนเพื่อดาวน์โหลดโครงการที่มีรหัสการเรียงลําดับ หนึ่งที่ต่ํากว่าเป็นเพียง DLL, ดังนั้นคุณจึงไม่ต้องดาวน์โหลดมัน.
กรุณาแยกไฟล์ที่ดาวน์โหลดมาเพื่อให้คุณสามารถดึงข้อมูลเนื้อหา
สร้างโครงการตัวประมวลผลแบบอักษร WPF
ฉันต้องการสร้าง WPF ประมวลผลตัวอักษร DLL ที่ทํางานร่วมกับ "CPU ใด ๆ" แต่ด้วยเหตุผลบางอย่างเมื่อฉันสร้างโครงการที่มี"ห้องสมุดขยายเนื้อหาท่อ"ของ XNA Framework ที่ฉันเท่านั้นสามารถสร้างได้ใน x86 ดังนั้นฉันจะสร้างมันจากห้องสมุดชั้นปกติที่นี่
เมื่อคุณสร้างโครงการ คุณไม่จําเป็นต้อง "Class1.cs" ดังนั้นให้ลบโครงการนั้น
ถัดไป ให้เพิ่มการอ้างอิง
เนื่องจากคุณวาดข้อความใน WPF คุณต้องมีการอ้างอิงที่เกี่ยวข้องกับ WPF ขั้นแรก ให้ตรวจสอบ "PresentationCore" จาก "กรอบงาน"
ถัดไป, ตรวจสอบ "WindowsBase". ตอนนี้กดปุ่ม OK เพื่อยืนยันและเปิดตัวจัดการการอ้างอิงอีกครั้ง
เลือก เรียกดู ทางด้านซ้าย แล้วคลิกปุ่ม เรียกดู ด้านล่าง
เปิดเส้นทางโฟลเดอร์ต่อไปนี้:
- แฟ้มโปรแกรม (x86) \ MSBuild \ MonoGame \ v3.0 \\ เครื่องมือ
เพิ่ม DLL ที่สองต่อไปนี้:
- 1000000000000000000
- 10.000000000000000000000000000
ตรวจสอบให้แน่ใจว่ามีการตรวจสอบแล้ว และคลิกปุ่ม OK
ตรวจทานการอ้างอิงที่เพิ่ม
เพิ่มรหัสแหล่งที่มาจากโฟลเดอร์ "WpfFontPipeline" จากโครงการที่คุณดาวน์โหลดไปยังโครงการที่คุณกําลังแก้ไขอยู่ในขณะนี้
รัฐที่คุณเพิ่ม
ตรวจสอบว่า การตั้งค่าคอนฟิกการสร้างเป็น "นําออกใช้" และ "CPU ใด ๆ "
ดําเนินการสร้างเพื่อดูว่ามันถูกสร้างขึ้นเรียบร้อยแล้ว
DLL ถูกสร้างขึ้น
สร้างโครงการเกม
สร้างโครงการสําหรับเกมส์ มันไม่สําคัญว่าแพลตฟอร์มคืออะไร
วาง DLL ที่คุณเพิ่งสร้างขึ้นในโฟลเดอร์เนื้อหา มันไม่สําคัญว่าที่ DLL เป็น แต่ในกรณีที่คุณจะต้องเส้นทางญาติหรือแน่นอนดังนั้นฉันจะปล่อยให้มันที่นี่สําหรับตอนนี้
เปิด Content.mgcb และเปิดการอ้างอิงที่มีเนื้อหาที่เลือก
หากคุณคลิกสองครั้งที่ "Content.mmcb" เพื่อไม่เปิดให้เริ่ม "MonoGame ไปป์ไลน์" จากเมนูเริ่ม
ในกล่องข้อความ ให้พิมพ์ชื่อไฟล์ของ DLL ที่คุณเพิ่งสร้างขึ้น หรือเส้นทางที่สัมพันธ์กับหรือเส้นทางสัมบูรณ์จาก Content.mgcb
หลังจากที่คุณตั้งค่า DLL ยังคงไม่สะท้อน ดังนั้นเมื่อคุณบันทึกโครงการ ออกจาก monoGame Pipeline และเปิดใหม่อีกครั้ง
สร้างแบบอักษรเทพดา เลือก "แก้ไข" (เพิ่ม→รายการใหม่จากเมนู
เลือก "คําอธิบายภาพสปริทFont" จากรายการที่จะเพิ่ม (บังเอิญหลังจากเพิ่ม SpriteFont ผมเปิดไฟล์ SpriteFont เพื่อให้ง่ายต่อการดูในขณะทํางานและเปลี่ยนชื่อตัวอักษรและขนาด.)
ถ้าคุณเลือกการ SpriteFont ที่คุณเพิ่ม คุณจะเห็นว่า ตัวประมวลผลแบบอักษร WPF จะพร้อมใช้งานจากตัวประมวลผล
เนื่องจากพารามิเตอร์แต่ละสามารถตั้งค่าเวลานี้ผมพยายามที่จะตั้งมันดังแสดงในรูปในขณะนี้ แต่น่าเสียดายที่คุณไม่สามารถเปลี่ยนสีใน MonoGame Pipeline รุ่นปัจจุบันได้
พยายามที่จะสร้าง อักขระ 6860 ถูกสร้างขึ้นเนื่องจากรวมถึงระดับ JIS 2 แต่เวลาประมาณ 9 วินาที คุณจะเห็นว่ามันเร็วมาก
ตอนนี้เรากําลังวาดภาพโดยใช้สปริทโฟนนี้และรหัสเป็นตรงเช่นเดียวกับ XNA คุณสามารถวาดข้อความโดยใช้รหัสที่นํามาใช้ใน"แสดงตัวอักษรและตัวเลข"ตามที่เป็นอยู่ แน่นอนว่าภาษาญี่ปุ่นก็เป็นไปได้เช่นกัน
ฉันต้องการที่จะใส่รหัสที่ฉันเพิ่มครั้งเดียว
ส่วนคํานิยามของฟิลด์ "สไปรท์ฟอนท์" ถูกเพิ่มเข้ามา
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
SpriteFont font;
กําลังโหลดและการสร้างข้อมูลแบบอักษรในวิธีการ 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");
}
วาดรูปด้วยภาษาญี่ปุ่นในวิธีการวาด
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);
}
เมื่อดําเนินการข้อความจะถูกวาด มันยากที่จะเข้าใจแต่ตัวอักษรมีเส้นขอบและสีฟ้าไล่ระดับสีภายใน
มันกลายเป็นเรื่องง่ายที่จะวาดญี่ปุ่นเช่นนี้และมันเป็นไปได้ที่จะวาดตัวอักษรด้วยการตกแต่ง
สุดท้ายคุณไม่สามารถเปลี่ยนสีของตกแต่งข้อความ monoGame Pipeline ได้ แต่คุณสามารถเปิดไฟล์ได้โดยตรงและแก้ไข
เมื่อคุณได้บันทึก และปิดโครงการแล้ว ให้เปิดแฟ้ม .mccb เป็นแฟ้มข้อความ
หากคุณเลื่อนลงมีข้อมูลสีในพารามิเตอร์เป้าหมายดังนั้นโปรดแก้ไขได้โดยตรง
หลังจากบันทึกข้อความแล้ว ให้เปิด monoGame Pipeline อีกครั้งและสร้างข้อความนั้นขึ้นมา คุณจะเห็นว่าสีมีการเปลี่ยนแปลงเมื่อคุณเรียกใช้