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

10月9日の日記

本日の追加キーワード

本日の作業

久しぶりに映画式のコードに手を入れました。

といっても、地味に、複数行表示対応です。

f:id:mr-80b:20051009101843j:image

↓ソース

#Caption  字幕表示用クラス(文字表示一般にも使用可能)
#
#■使用方法
#・caption = Caption.new(x,y,fontsize)
#  で生成
#
#・caption.write("なかなか気の強そうな娘だな")
#  で描画
#
#・caption.clear
#  で消去
#  (clearで消さなくても、次の字幕をwriteすれば、前の文字は自動的にclearされます)
#
#・caption.write("なかなか気の強そうな娘だな",200)
#  とすれば、文字を表示したあと200フレームウェイトします

class Caption
  attr_accessor :x
  attr_accessor :y
  def initialize(x,y,fontsize,fontname="MS P明朝")
    @x = x
    @y = y
    @sprite = Sprite.new
    @sprite.bitmap = Bitmap.new(640,480)
    @sprite.ox = @sprite.bitmap.width / 2 # 基点を中心に
    @sprite.oy = @sprite.bitmap.height / 2 # 基点を中心に
    @sprite.bitmap.font.size = fontsize
    @sprite.bitmap.font.name = fontname
    @sprite.x = @x
    @sprite.y = @y
  end
  def write(text,waitframe=0)
    @sprite.bitmap.clear
    text.split("|").each_with_index { |oneline,i|
      @sprite.bitmap.draw_text(0,i*32,640,480,oneline,1)
    }
    if waitframe != 0
      wait(waitframe)
    end
  end
  def clear
    @sprite.bitmap.clear
  end
  def dispose
    @sprite.bitmap.dispose
    @sprite.dispose
  end
end

こっそりフォント名パラメータも追加。