5

Gosu ライブラリのテキストを画面の真ん中に配置するのに苦労しています。

require 'gosu'

class GameWindow < Gosu::Window
  def initialize (width=800, height=600, fullscreen=false)
    super
    self.caption = 'Hello'
    @message = Gosu::Image.from_text(
        self, 'HELLO WORLD', Gosu.default_font_name, 45)
  end

  def draw
    @message.draw(377.5,277.5,0)
  end
end

window = GameWindow.new
window.show 


私の最初のアプローチはheight、画面の を取得し、それをテキストの高さで減算してから452 で割ることでした。

ここに画像の説明を入力

ただし、水平方向は別の話です...テキストの中央ではなく、テキストの左上隅を取り、それを中央に配置しているようです。

ここに画像の説明を入力

誰でもこれの公式を手に入れましたか?私はたくさんのことを試しましたが、近づくだけでした。

4

3 に答える 3

4
class GameWindow < Gosu::Window
  def initialize (width=800, height=600, fullscreen=false)
    super
    self.caption = 'Hello'
    @message = Gosu::Image.from_text(
        self, 'HELLO WORLD', Gosu.default_font_name, 45)
  end

  def draw
    @message.draw(377.5,277.5,0)
  end
end

あなた@messageはのインスタンスですGosu::Image

私が見る限り、クラスには、画像の回転中心を指定されたポイントに合わせることができるメソッドがあり、draw_rot

フレームの中心を見つけたら、draw_rot代わりに使用するとうまくいくはずです。draw

于 2015-08-23T18:42:28.027 に答える