hspdxfixを使い始めましたところ、es_checkがよく分からず使えません。
お分かりになる方がいれば、教えてください。
1、es_sizeで登録、判定を100に
2、patしてsetしてスプライトで描画>更新
3、一つのスプライトを動かして衝突させる
4、es_checkで監視しても常にー1で、衝突を検出できない。
以下スクリプト
#include "hspdxfix.as"
;[ESC]キーで終了
;------------------------------------------------------------------
es_ini ; system初期化
es_screen 800,600,32,0,1,1 ; スクリーン初期化(32でウィンドウデバックモード、3D使用)
if stat=1 : goto *dderr1
if stat=2 : goto *dderr2
goto *start ; 正常に完了
*dderr1: dialog "DirectXの初期化に失敗しました。",1: end
*dderr2: dialog "スクリーンの初期化に失敗しました。",1: end
*dderr3: es_bye: wait 100: dialog "VRAMの容量が不足しています。",1: end
;------------------------------------------------------------------
*start
buffer 1,800,600: picload "chip4.bmp": ;なんでも可(50*100以上)
es_buffer 1,0: if stat:goto *dderr2
es_size 50,50,100 ;サイズ5050で、判定領域100%
es_pat 10,50,0: es_set 10,100,400,10 ;10番に登録 初期位置100400
es_pat 10,100,0: es_set 2,600,400,2 ;2番に登録 初期位置600400
gsel 0
a=1:p2=0
*mloop ;ループ開始
getkey p1,13 ;終了用ENTER
if a=1: a+: es_adir 2,48,100 ;一回だけ左へ動かす命令
if a=2: a+: es_adir 10,16,100 ;一回だけ右へ
gosub *che ;ここでチェックしたいが、無反応(常にー1)
es_draw
es_sync
await 0
es_cls 2
if p1=1: end ;終了
goto *mloop
end
*che
es_check p2,2
if p2>0: title "重なった"+p2: wait 500: end
if p2<0: title "重ならない"+p2
return
adirではなく、es_posでもできませんでした。(p2が常にー1)