HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0921
ひろかずhgimg3での2Dの当たり判定について2解決


ひろかず

リンク

2019/9/21(Sat) 08:35:23|NO.88461

hgimg3による2Dの当たり判定に不明な点があり、質問させて頂きます。
hgimg3では、getcoli命令で当たり判定を行うようですが、当たり判定のサイズ指定は
どうしたら良いのでしょうか?
第3パラメータで「衝突する範囲(半径)」を指定するようですが、設定方法はこれだけ
なのでしょうか?

hspdxではスプライト単位でサイズ及び当たり判定の%を指定出来たのですが、hgimg3で
これを行うにはどうしたら良いのでしょうか?

長方形のスプライトと、正方形のスプライトとの衝突の判定で行き詰まっております。
何卒、よろしくお願い申し上げます。



この記事に返信する


暇人

リンク

2019/9/21(Sat) 19:48:10|NO.88476

一応出来ない事はないけど
汎用性に欠ける・・・
A、B、Cがあったとして
それぞれ全てサイズが違う場合
BにAとの判定サイズを設定できるが
CとBを判定したい場合にはBに設定した判定サイズは使えない
(多少の違いならgetcoliの範囲指定でごまかせるかも・・・)
CにBとの判定サイズを設定してBを元にgetcoliを使う手はある


#include "hgimg3.as" screen 0,640,480,0 hgini setuv 64*2,0,64*2+63,63 addspr mda,0 regobj obj_a,mda setcoli obj_a,1,2 setuv 0,0,63,63 addspr mdb,0 texload dir_exe+"\\sample\\hgimg3\\testchr.bmp" regobj obj_b,mdb setscale obj_b,1.0,2.0,1.0 //縦2倍表示 setcoli obj_b,2,1 //衝突判定する元のオブジェクトと検索するオブジェクトの判定サイズを足して半分にしたものを判定サイズとして使用 setcolscale obj_b,(64.0+64.0)/2,(64.0+64.0*2)/2,1.0,0 //(obj_aYサイズ+obj_bYサイズ)/2 縦の判定サイズ(実際にはスケールだけど・・・) regobj obj_b(1),mdb setscale obj_b(1),3.0,0.5,1.0 //横3倍縦0.5倍表示 setcoli obj_b(1),2,1 setpos obj_b(1),150,-100 setcolscale obj_b(1),(64.0+64.0*3.0)/2,(64.0+64.0*0.5)/2,1.0,0 setfont 16,16,12,1 texload dir_exe+"\\sample\\hgimg3\\fontchr.bmp" clscolor $2244 mouse ginfo_wx1+100,ginfo_wy1+100 *main stick k,127 if k&128 : goto *owari setpos obj_a,mousex-320,mousey-240 hgdraw hit_cn=0 repeat 2 getcoli res(hit_cn),obj_a,1.0 if res(hit_cn)<0 {break } getpos res(hit_cn),x,y,z setcoli res(hit_cn),0,0 //削除しないのでグループ値変更して後で戻す hit_cn++ fprt "HIT("+hit_cn+")",x+320,y+240 loop repeat hit_cn setcoli res(cnt),2,1 loop hgsync 16 goto *main *owari end
判定元の方を長方形にしたい場合も同じ
検索する側に判定サイズを設定する



ひろかず

リンク

2019/9/22(Sun) 18:51:01|NO.88491

>>暇人さん

ご返信及びスクリプトのご呈示、誠に有り難うございます。
大変良く理解する事が出来ました。
おかげさまで、当たり判定はうまくいきそうです。
有り難うございました。



ONION software Copyright 1997-2023(c) All rights reserved.