speed = 30 // 1回の移動量…30ピクセル
gx = 640 // 画像Xサイズ
gy = 1000 // 画像Yサイズ
cx = 0, -1 // 0:カレントポジションX, 1:前回のカレントポジションX
cy = 0, -1 // 0:カレントポジションY, 1:前回のカレントポジションY
buffer 2, , gy + winy
randomize
boxf : color 255, 255, 255
repeat 1000
rnd x, gx : rnd y, gy
pset x, y
loop
pos 0, gy : gcopy 2, , , gx, winy - gy // 画面終端に先端のウィンドウサイズ(1画面)分を貼り付ける
gsel 0
repeat
wait 3
stick key, 15
if key & 2 : if cy - speed < 0 : cy = gy - speed : else : cy -= speed
if key & 8 : if cy + speed > gy : cy = speed : 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
gcopy 2, cx, cy, winx, winy
redraw 1
loop
|