〜 グラフィック 〜
途切れない線を描画

pset命令という任意の座標に点を描画する命令が用意されており、
ループでマウス位置に点を何度も描画すると、マウスの軌跡となる幾つもの点が繋がって線を描きますが、
マウスを高速移動すると、前回と隣接していない箇所に点が描画され、線にはならないことがあります。
1ループの間には、マウス位置の取得や点の描画等、いろいろと処理するので、
ループ中のウェイトを例え「await 0」としていても、マウスを高速移動させると綺麗な線とはなりません。
どんなに早くマウスを動かしても途切れないようにするには、前回座標と今回座標とを線で結ぶのです。
ペイント系ツールを作る時は下記サンプルを参考に組み込んでみましょう。
	
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
	drawarea = 100, 50, winx - 100, winy - 50
	color 255, 230, 230 : boxf drawarea.0, drawarea.1, drawarea.2, drawarea.3
	color , , 100
	repeat
		mx = mousex : my = mousey
		if mx < drawarea.0 | (mx > drawarea.2) | (my < drawarea.1) | (my > drawarea.3) {
			draw = 0
		} else {
			stick key, 256, 1
			if key & 256 {
			  if draw = 0 : pset mx, my : else : line mx.1, my.1, mx, my
			  mx.1 = mx : my.1 = my
			  draw = 1
			} else {
			  draw = 0
			}
		}
		wait 1
	loop
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
	drawarea = 100, 50, ginfo_winx - 100, ginfo_winy - 50
	color 255, 230, 230 : boxf drawarea.0, drawarea.1, drawarea.2, drawarea.3
	color , , 100
	repeat
		mx = mousex : my = mousey
		if mx < drawarea.0 | mx > drawarea.2 | my < drawarea.1 | my > drawarea.3 {
			draw = 0
		} else {
			stick key, 256, 1
			if key & 256 {
			  if draw = 0 : pset mx, my : else : line mx.1, my.1, mx, my
			  mx.1 = mx : my.1 = my
			  draw = 1
			} else {
			  draw = 0
			}
		}
		wait 1
	loop