I'm trying to output text to the main window with unicode character like that
def initialize
super 800, 800
self.caption = 'Chess'
@font = Gosu::Font.new(self, Gosu.default_font_name, 100)
end
def draw
text = "Chess \u2658".encode('utf-8')
@font.draw(text, 100, 100, 10, 1, 1, Gosu::Color::BLACK)
end
but the window displays only the 'Сhess' string without unicode symbol '♘' as supposed.
What I have tried so far:
- to change font name itself, 'Gosu.default_font_name' to 'Serif', 'Arial', 'Hack' - same result only 'Chess' string changes font but not displaying glyph
- use symbol '♘' instead of unicode code
- use .draw_markup, .draw_text, Gosu::Image.from_text.
- use different unicode code, for example with cyrillic letter '\u0416' it worked as supposed.
- use different encoding arguments.
- use different colors.
I looked for similar problems on the Gosu forum, but I could not find anything.
You need to use a font that includes those Unicode characters or Gosu's internal font rendering code will return a 0 width image for drawing that character.
A font like: https://fontlibrary.org/en/font/chess