zoom = 4 // 4倍サイズで表示
speed = zoom * 10 // 1回の移動量…10ピクセル(ズーム後40ピクセル)
cx = 0, -1 // 0:カレントポジションX, 1:前回のカレントポジションX
cy = 0, -1 // 0:カレントポジションY, 1:前回のカレントポジションY
buffer 1
picload "sample/hspdx/hspdx.bmp"
bx = winx : by = winy
gsel 0
repeat
wait 3
stick key, 15
// 上下左右の押された方向へカレントポジションを移動(画像スクロール)
if key & 1 : if cx - speed < 0 : cx = 0 : else : cx -= speed
if key & 2 : if cy - speed < 0 : cy = 0 : else : cy -= speed
if key & 4 : if cx + speed > (bx * zoom - winx) : cx = bx * zoom - winx : else : cx += speed
if key & 8 : if cy + speed > (by * zoom - winy) : cy = by * zoom - winy : else : cy += speed
// 前回と同じ位置ならば、再描画しない
if cx.0 = cx.1 & (cy.0 = cy.1) : continue
cx.1 = cx.0 : cy.1 = cy.0 : draw++
title "描画回数:" + draw + " 描画基点(" + cx+ ", " + cy + ")"
redraw 0
gzoom bx * zoom, by * zoom, 1, cx / zoom, cy / zoom, bx, by
redraw 1
loop
|