はてな?RGSS(うらぐち) RSSフィード

6月16日の日記

順調にちまちま改良中。

  2006-xx-xx V0.7 発表時間を元にして終了時刻、残り時間を表示する形にも対応
                  BGM,SEのスライド単位での指定に対応
                  ページ、時間表示方法見直し。より見やすく表示。
                  残り時間がなくなったら文字を赤く表示。
                  残り時間がなくなった時の残り時間表示がおかしかったのを修正
                  タイトル画面を作成(とりあえず)

今楽しい時期です。


普通に文字表示用クラス

素のRGSSではちょっと文字を表示させるのも結構面倒です。

自分が書きたい形で表示できるようなクラスを作りたくなりますね。

というわけで、自分流のをシンプルめに作ってみました。

#普通に文字表示用クラス:Moji
#Moji.new(x, y, str, pos) 
#x … 基点のx座標
#y … 基点のy座標
#str … 表示する文字列
#pos … 文字表示位置設定。0だと基点が左端、1は真ん中、2は右端。省略可。省
略値は0

class Moji
  def initialize(x,y,str,pos=0)
    @sprite = Sprite.new
    @sprite.x = x
    @sprite.y = y
    #サイズ確認のためのダミーBitmap
    bitmap = Bitmap.new(1,1)
    bitmap.font.size = 20
    width = bitmap.text_size(str).width
    height = bitmap.text_size(str).height
    bitmap.dispose
    case pos
    when 1
      @sprite.ox = width / 2
    when 2
      @sprite.ox = width
    end
    @sprite.bitmap = Bitmap.new(width,height)
    @sprite.bitmap.font.color = Color.new(255,255,255)
    @sprite.bitmap.font.size = 20
    @sprite.bitmap.draw_text(0,0,width,height,str)
  end
  def dispose
    @sprite.bitmap.dispose
    @sprite.dispose
  end
end

#サンプル
moji = Moji.new(0,0,"テスト")
loop{Graphics.update}

文字のサイズを確認するためにダミーbitmapを作成するというのが格好悪いので

すが、仕方がないのでしょうか…。

何か良い方法があればアドバイスいただけましたら幸いです。

自動色付けいい感じです。