毎度解決方法じゃなくてすみません。
gamemain#L59 付近の //対床 の MV1CollCheck_Line では
期待どおり HitPoly(0) に 1 が格納されることがありますね。
そして HitPoly(1) 以降に展開されたデータが格納されてる雰囲気。
そこで if HitPoy(0)=1 { の中の player_add_y(cam_player) = 0.0 の直後に以下のコードを入れてみました。
HitPoly(0) = 0
HitPoly(1) = 0
MV1CollCheck_Sphere HitPoly, startpos(0),startpos(1),startpos(2), 10.0
dialog "HitPoly(0), " + HitPoly(0)
#uselib "DxLib.dll"
#func global _collsp "dx_MV1CollCheck_Sphere" int,int,float,float,float,float
_collsp mapobj, 0, startpos(0),startpos(1),startpos(2), 10.0
dialog "stat, " + stat
end
結果は HitPoly(0), 0 と stat, 2 が出ます。
なぜか Sphere の方は 2個 衝突という結果を返してくれません。謎ですね;;
いのびあさんの記事。
【HSP3】構造体を戻り値とするDXライブラリの関数をHSPで呼び出すテスト
https://codetter.com/?p=1192