es_test3.hsp

sample\sprite\es_test3.hsp » Plain Format

#include "hsp3dish.as"

	;
	;	HSP3Dish sprite sample3
	;		スプライトを表示、カーソルキーで上下左右に移動。
	;		スペースキーで、リンゴを発射。たくさん発射。
	;		画面外に出たスプライトは自動的に削除されます。
	;		[ESC]キーで終了
	;
	;------------------------------------------------------------------

	screen 0,640,480			; スクリーン初期化
*start
	es_ini					; スプライトを初期化

	buffer 3
	picload "testchr.png"
	es_size 64,64,50
	es_pat 0, 0,0			; 顔
	es_pat 1, 64,0			; リンゴ

	gsel 0

	myx=300:myy=200
	es_set 0,myx,myy,0			; メインのスプライト

*main
	stick ky,$1f				; カーソルキーの情報を取得
	gosub *keychk
	if ky&$10 : gosub *ringo
	if ky&$80 : goto *owari
	es_pos 0,myx,myy

	redraw 0
	color 64,64,64
	boxf					; 背景を塗りつぶし

	es_draw					; スプライトを描画

	rgbcolor $ffffff
	pos 0,0:mes "Sprite Sample"		; 文字列を描画

	redraw 1
	await 1000/60				; タスク更新

	goto *main

*ringo
	;	リンゴ発射
	;
	es_new a,2
	es_set a,myx,myy,1
	es_adir a,rnd(64),400
	return

*owari
	es_bye
	end


*keychk
	;	カーソルキー入力で自分(変数myx,myy)を動かすサブルーチン
	;	(カーソルキーを同時に押すことにより斜めにも移動できます)
	;
	if ky&2 : goto *go_up			; 上を押しているか?
	if ky&8 : goto *go_down			; 下を押しているか?
	goto *keychk2				; 左右のチェックにジャンプ
*go_up
	if myy>0 : myy-=8
	goto *keychk2
*go_down
	if myy<420 : myy+=8
*keychk2
	if ky&1 : goto *go_left			; 左を押しているか?
	if ky&4 : goto *go_right		; 右を押しているか?
	return
*go_left
	if myx>0 : myx-=8
	return
*go_right
	if myx<580 : myx+=8
	return