defcfunc.hsp

sample\module\defcfunc.hsp » Plain Format

	;
	;	カーソルキーで●を動かすサンプル
	;	赤い●が追いかけてきます
	;

#module

#defcfunc near int a, int b
	;
	;	near(a,b)
	;	aをbに近づけた値を返す関数
	;
	if a=b : return a
	if a>b : return a-1
	return a+1

#defcfunc away int a, int b
	;
	;	near(a,b)
	;	aをbから遠ざけた値を返す関数
	;
	if a=b : return a
	if a>b : return a+1
	return a-1

#deffunc putchr int x, int y, str chr
	;
	;	putchr x,y,chr
	;	(x,y)の位置にchrの文字を表示する
	;
	pos x,y:mes chr
	return

#global

	title "カーソルキーで●を動かせます。"

	speed=4
	flag=0
	myx=400:myy=360
	enex=200:eney=120

	repeat
	redraw 0
	color 0,0,128:boxf
	color 255,255,255
	putchr myx,myy,"●"
	color 255,0,0
	putchr enex,eney,"●"

	if flag&1 {
		enex=away(enex,myx)
		eney=away(eney,myy)
	} else {
		enex=near(enex,myx)
		eney=near(eney,myy)
	}

	stick key,15
	if key&128 : end
	if key&2 : myy-=speed
	if key&8 : myy+=speed
	if key&1 : myx-=speed
	if key&4 : myx+=speed
	if key&16 : flag^=1

	redraw 1
	await 25
	loop