RGSS2を知る(14)

気が付いたらもう14回目。
RGSS2がよくわかってきたような気はあんまりしない。


今回はViewportのフラッシュについて。
以下のコードを実行すると、指定時間が違うのにどちらも同時に消える。

v1 = Viewport.new(0,0,400,300)
v2 = Viewport.new(100,100,400,300)

v1.flash(Color.new(255,255,255), 255)
v2.flash(Color.new(255,255,255), 600)

loop do
  v1.update
  v2.update
  Graphics.update
end

どうやら指定時間と経過時間の割合からαを算出するのではなく、毎フレームαから1減らしているらしい。
このようなコードに書き換えても同時に消える。

v1 = Viewport.new(0,0,400,300)
v2 = Viewport.new(100,100,400,300)

v1.flash(Color.new(255,255,255,128), 128)
v2.flash(Color.new(255,255,255,128), 600)

loop do
  v1.update
  v2.update
  Graphics.update
end

つまり、フレーム数の指定は指定色のαがMAXとなる。
colorプロパティを指定して、600フレームnilフラッシュさせると10秒後に出てくるから、カウントはしているようだ。
これは仕様なのかバグなのか。
こういうのも再現しないといけないとなると面倒だが、どうしたもんだろう。