mapmove2.hsp

sample\game\mapmove2.hsp » Plain Format

	;
	;	マップ表示(2)
	;	(マップデータはmapedit.hspで作成します)
	;
	cx=64:cy=64	; チップXYサイズ
	csrc=3		; チップのあるウィンドウID

	mapsx=32	; マップ全体Xサイズ
	mapsy=32	; マップ全体Yサイズ

	dim map,mapsx,mapsy
	mapvx=9:mapvy=7	; 表示XYチップ数
	mapx=0:mapy=0
	mapex=(mapsx-mapvx)*cx
	mapey=(mapsy-mapvy)*cy

	bload "test.map",map				; マップ読み込み

	buffer csrc
	picload "testchr.bmp"				; 画像ファイル
	screen 0,mapvx*cx,mapvy*cy

*main
	redraw 0					; 描画始め

	color 0,0,64
	boxf						; 背景を消す

	gosub *putmap					; マップ表示
	gosub *putmes					; メッセージ表示

	redraw 1					; 描画終わり
	await 20

	stick key,15					; キー入力
	if key&1 : mapx-=2
	if key&4 : mapx+=2
	if key&2 : mapy-=2
	if key&8 : mapy+=2
	mapx=limit(mapx,0,mapex)
	mapy=limit(mapy,0,mapey)

	goto *main

*putmap
	ix=mapx/cx:ipx=mapx\cx
	iy=mapy/cy:ipy=mapy\cy
	lx=mapvx:if ipx>0 : lx+ 
	ly=mapvy:if ipy>0 : ly+ 
	gmode 0,cx,cy
	repeat ly
	i=iy+cnt:y=cnt*cy-ipy
	repeat lx
		pos cnt*cx-ipx,y
		gcopy csrc,map(ix+cnt,i)*cx,0
	loop
	loop
	return

*putmes
	sysfont 17
	pos 0,0:color 255,255,255
	mes "カーソルキーでマップを移動させてください。"
	return