サイログ。

~雑多な記事置き場~

Viewportの使い方

これまで、Viewportの使い方を全く説明していなかったので、サンプルリストを載せておきます。

require 'miyako'

include Miyako

vp0 = Viewport.new(100,100,200,100)

spr1 = Sprite.new(:size=>[50,50], :type=>:ac)
spr1.fill([255,255,200,160])

spr2 = Sprite.new(:size=>[50,50], :type=>:ac)
spr2.fill([255,255,100,160])
spr2.move!(100,0)

wt = WaitCounter.new(0.02)
wt.start

Miyako.main_loop do
  break if Input.quit_or_escape?
  break if spr1.x >= 320

  # 描画矩形を制限する
  vp0.render
  spr1.render
  # 描画矩形を画面全体に戻す
  Screen.viewport.render
  spr2.render

  if wt.finish?
    spr1.move!(4,4)
    spr2.move!(4,4)
    wt.start
  end
end

2つの四角形が右斜め下に移動するプログラムですが、左側の白っぽい四角は一部分しか描画されません。

これは、Viewportというクラスのオブジェクトによって、描画範囲を[100,100]-[299,199]に制限しているためです。
また、Screen.viewportメソッドは、画面全体を示すViewportクラスのオブジェクトを返すため、描画範囲が画面全体に戻ります

取り急ぎ、これまで。