Love2d กับการแสดงผลภาษาไทย
หลังจากที่ปรับแต่งขนาดของหน้าต่างเกมเรียบร้อยแล้วผมก็ทดลองเปลี่ยนการแสดงผล hello ด้วยการพิมพ์ภาษาไทยเข้าไป แต่ผลออกมาไม่น่าพิศมัยเลย
function love.draw() love.graphics.print("รักเร่ เร่ร้างรัก", 400, 300) end

หมายความว่า love2d มีปัญหากับการแสดงผลภาษาไทย ผมได้ค้นหาข้อมูลด้วยตัวเองและได้ทราบว่าตัว love2d นั้นรองรับการเข้ารหัสตัวหนังสือแบบ utf-8 ซึ่งสมควรที่จะแสดงตัวหนังสือภาษาไทยได้ถูกต้อง แล้วทำไมผลจึงเป็นเช่นนี้ ผมค้นต่อไปอีกจนได้ทราบว่าปัญหาอยู่ที่ font ค่าปริยายของ love2d ใช้ font ที่ไม่สนับสนุนภาษาไทย ดังนั้นผมจึงต้องหาตัวหนังสือภาษาไทยมาใส่ในตัวเกมด้วย เว็บที่ผมคิดถึงเป็นเว็บแรกก็คือ f0nt.com
ค้นอยู่พักหนึ่งผมก็เลือก Fontcraft เวอร์ชัน 2.03 ของคุณ จุติพงศ์ ภูสุมาศ มาใช้ ตัวไฟล์ font ที่โหลดมามีช่องว่างในชื่อไฟล์ที่อาจจะสร้างปัญหาในการเรียกใช้ไฟล์ ดังนั้นผมจึงใส่ ‘-‘ เข้าไปแทนช่องว่างเพื่อนป้องกันปัญหาล่วงหน้า หวังว่าคุณจุติพงศ์คงไม่เห็นว่าเป็นการดัดแปลงที่ไม่สมควรนะครับ
เมื่อมีฟอนต์ที่ต้องการแล้วสิ่งต่อไปที่ผมต้องทำก็คือการเปลี่ยนฟอนต์ ผมอ่าน wiki จนพบกับวิธีการเปลี่ยนรูปแบบตัวหนังสือในที่สุด
font = love.graphics.newFont( filename, size )
ผมได้แก้ไขให้ love เรียกใช้ฟอนต์ใหม่ดังข้างล่างนี้
fontCraft = love.graphics.newFont( "fonts/fontcraft-ver-2.03.otf", 16 ) --สร้าง object ขึ้นมาเก็บค่าฟอนต์ function love.draw() love.graphics.setFont(fontCraft) --ตั้งค่าฟอนต์โดยอ้างอิงจาก object fontCraft love.graphics.print("รักเร่ เร่ร้างรัก", 400, 300) end

ตอนนี้การแสดงผลภาษาไทยทำได้แล้ว แต่ผมว่าตัวหนังสือมันเล็กไปหน่อย ดังนั้นผมจะเพิ่มขนาดตัวหนังสือขึ้นอีกเป็น 36
fontCraft = love.graphics.newFont( "fonts/fontcraft-ver-2.03.otf", 36 ) --สร้าง object ขึ้นมาเก็บค่าฟอนต์ function love.draw() love.graphics.setFont(fontCraft) --ตั้งค่าฟอนต์โดยอ้างอิงจาก object fontCraft love.graphics.print("รักเร่ เร่ร้างรัก", 400, 300) end
