block2.hsp

sample\game\block2.hsp » Plain Format

	;
	;	ブロック崩し(2)
	;	(ボールとバーを表示します)
	;

	x1=0:y1=0		; 画面左上の座標
	x2=480:y2=640		; 画面右下の座標

	blsize=16		; ボールのサイズ
	blspd=12			; ボールのスピード
	blx=240:bly=400		; ボールの座標
	bpx=4:bpy=4		; XY方向のボール座標加算値

	barsize=64		; バーのサイズ
	barx=240:bary=540	; バーの座標

	barhalf=barsize/2
	blhalf=blsize/2

	screen 0,x2,y2

*main
	redraw 0
	gradf 0,0,x2,y2,1,0,128	; 画面クリア

	; バー : マウス座標から位置を決定
	barx=mousex-barsize/2
	color 255,255,255
	boxf barx,bary,barx+barsize,bary+16

	; ボール : X方向の移動
	blx=blx+bpx
	if blx<=x1 : blx=x1 : bpx=-bpx
	if blx>=(x2-blsize) : blx=x2-blsize : bpx=-bpx

	; ボール : Y方向の移動
	bly=bly+bpy
	if bly<=y1 : bly=y1 : bpy=-bpy
	if bly>=(y2-blsize) : bly=y2-blsize : bpy=-bpy

	; ボールとバーがぶつかったかどうか調べます
	coly=bly+blsize
	if (coly>=bary)&(bly<(bary+16)) {	; ボールY座標のチェック
		; ボールX座標のチェック
		colx=blx+blhalf
		x=barx+barhalf
		if abs(colx-x)<(barhalf+blhalf) {
			bly=bary-blsize : bpy=-blspd
			i=(colx-x)/4
			if i!=0 : bpx=i
		}
	}

	; ボールを表示
	pos blx,bly:color 255,255,255
	font msgothic,blsize
	mes "●"

	redraw 1
	await 16
	goto *main