maptest2.hsp

sample\sprite\maptest2.hsp » Plain Format

#include "hsp3dish.as"

	;
	;	HSP3Dish sprite sample
	;		BGマップ機能のテスト
	;		8×8サイズのマップ内をキーで移動します
	;		(マップセルに当たり判定を追加)
	;		(画面外に移動するとスプライトが消去されます)
	;		[ESC]キーで終了
	;
	;------------------------------------------------------------------

	randomize
	wx=640:wy=480
	screen 0,wx,wy				; スクリーン初期化
	es_ini					; スプライト初期化

	;	セルの画像素材を読み込みます
	;	("parts.png"ファイルはhsptvフォルダにあります)
	celload "parts.png",3
	es_size 40,40				; キャラクターのサイズ指定
	es_pat 0, 200, 0, 0, 3			; キャラクターの登録(0)

	mapsx=8:mapsy=8				; マップサイズ
	dim map,mapsx*mapsy			; マップデータ変数
	celdiv 3,40,40				; マップのセル設定

	es_bgmap 0,map,mapsx,mapsy,mapsx,mapsy,3 	; マップ登録
	es_bgattr 0, 6,11, ESMAP_ATTR_WALL	; アトリビュート値を設定
	es_bglink 0, ESSPMAPHIT_BGHIT		; スプライトのBG当たり判定を有効にする

	map(44)=6:map(45)=6			; マップデータを設定(壁を作る)
	repeat 8:map(56+cnt)=6:loop

	myx=64:myy=0
	es_set 0, myx, myy, 0			; スプライトを登録

*main
	stick ky,$1f				; カーソルキーの情報を取得
	if ky&$80 : goto *owari

	;	キーで移動します
	px=0:py=0:speed=2
	if ky&8 : py=speed			; 下移動
	if ky&2 : py=-speed			; 上移動
	if ky&1 : px=-speed			; 左移動
	if ky&4 : px=speed			; 右移動
	es_apos 0, px,py			; スプライトを移動させる

	redraw 0
	rgbcolor $404040:boxf
	es_putbg 0				; マップを描画
	es_draw					; スプライト描画
	redraw 1
	await 1000/60				; タスク更新
	goto *main

*owari
	es_bye
	end