〜 グラフィック 〜
背景が単色以外の再描画

動かしたい画像や文字の位置や大きさ、形を徐々に変える事がアニメーションの原理となっています。
パラパラ漫画では表示したい絵をどんどん表示させるだけでアニメーションさせることが出来ますが、
HSPで同じ様にアニメーションさせたいものを表示させるだけでは、
位置や大きさが違うものだと上書クリアしない限り、残像としていつまでも残ってしまいます。
背景が単色の場合には、boxf命令で塗りつぶした後に表示したいものを描画すればそれでよいですが、
表示したいもの(前景)の背景が、模様や画像となっている場合は、boxf命令では塗りつぶせません。
こういう場合は、背景と前景を別々に考え、
前景と同じ位置にある背景をgcopy命令またはgzoom命令で貼り付けることで実質、前景をクリアできます。
尚、これは背景が模様や画像でなく単色である場合でも問題ありませんが、
単色なのに背景を保持しておくのは無駄な気がして、
単色の背景を貼り付けるよりも単純に塗りつぶすことの多いかもしれません。
	
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
	// 準備
	buffer 2
	picload "sample/demo/hsp2ttl.jpg"
	wx = winx : wy = winy
	screen 0, wx, wy
	font "", wy / 2
	color 255
	// メイン
	repeat wx, 1
		ichi = wx - (cnt * 4)
		redraw 0
		gosub *draw_bg // 背景描画
		gosub *draw_fg // 前景描画
		redraw 1
		wait 1
	loop
	end

*draw_bg
	pos 0, 0 : gcopy 2, , , wx, wy
	return

*draw_fg
	pos ichi, wy / 4
	mes "ア ニ メ ー シ ョ ン サ ン プ ル"
	return
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
	// 準備
	buffer 2
	picload "sample/demo/bgsmoke.bmp"
	wx = ginfo_winx : wy = ginfo_winy
	screen 0, wx, wy
	font "", wy / 2
	color 255
	// メイン
	repeat wx
		ichi = wx - (cnt * 4)
		redraw 0
		gosub *draw_bg // 背景描画
		gosub *draw_fg // 前景描画
		redraw 1
		wait 1
	loop
	end

*draw_bg
	pos 0, 0 : gcopy 2, , , wx, wy
	return

*draw_fg
	pos ichi, wy / 4
	mes "ア ニ メ ー シ ョ ン サ ン プ ル"
	return