コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

canvas.getg( GX0,GY0,GX1,GY1,WX0,WY0,WX1,WY1 )

メイン画面の指定範囲をワーク画面の指定範囲にコピーします。
引数

  • Xm0: メイン画面の左上X座標
  • Ym0: メイン画面の左上Y座標
  • Xm1: メイン画面の右下X座標
  • Ym1: メイン画面の右下Y座標
  • Xw0: ワーク画面の左上X座標
  • Yw0: ワーク画面の左上Y座標
  • Xw1: ワーク画面の右下X座標
  • Yw1: ワーク画面の右下Y座標

メイン画面の指定範囲とワーク画面の指定範囲は必ずしも同じでなくて大丈夫です。異なる場合はワーク画面にコピーされるとき、メイン画像が変形してコピーされます。
使用例

function print( str, fontsize, fcolor, bcolor )
 local w,h = canvas.getviewSize()
 --一度、見えないところにテキストを書いて、改行数を求める
 local sc = canvas.putTextBox( str, 0, h+1, fontsize, fcolor, w )
 --画面の絵をワークエリアに取り込みます
 canvas.getg( 0, fontsize*sc, w-1, h-1, 0, fontsize*sc, w-1, h-1 )
 --取り込んだ画面をスクロールさせて描きます
 canvas.putg( 0, 0, w-1, h-fontsize*sc-1, 0, fontsize*sc, w-1, h-1 )
 --書き出す部分をバックカラーで塗り潰します
 canvas.putRect(  0, h-fontsize*sc-1, w, h, bcolor, 1 )
 --スクロールしたところにテキストを書きます
 canvas.drawTextBox( str, 0, h-fontsize*sc, fontsize, fcolor, w )
end