getcoli

オブジェクトのコリジョン判定

getcoli val,id,distance,startid,numid

val           : 結果が代入される変数名
id(0)         : オブジェクトID
distance(1.0) : 衝突を検出する範囲(実数値)
startid(0)    : 検出を開始するオブジェクトID
numid(-1)     : 検出の対象となるオブジェクトIDの数(-1=すべて)

(プラグイン / モジュール : HGIMG3/HGIMG4共通)

解説

指定したオブジェクトが持つコリジョン情報をもとに、そのオブジェクトが衝突している別なオブジェクトのIDを調べます。
distanceは、衝突する範囲(半径)を実数値で指定します。
衝突が検出された場合は、変数にオブジェクトIDが代入されます。
何も衝突が検出されなかった場合は、-1が代入されます。

startidとnumidパラメーターにより、衝突を検出するオブジェクトIDの範囲を指定することができます。
startidに検出を開始するオブジェクトIDを指定して、numidにオブジェクトIDの個数を指定します。numidを省略するかマイナス値の場合は、開始オブジェクトID以降すべてが対象になります。
たとえば、startidが100、numidが50の場合は、オブジェクトIDが100~149までの範囲にあるオブジェクトが判定の対象となります。通常は、パラメーターを省略することですべてのオブジェクトが検出の対象となります。指定された範囲のオブジェクトIDだけに限定したい時に使用してください。
HGIMG4では、ライトやカメラなどもオブジェクトIDとして扱われますが、IDの範囲が設定できるものは3Dモデルや2Dスプライトのオブジェクトのみに限定されますのでご注意ください。

HGIMG4では、distanceにマイナス値を指定した場合、3Dモデルが持つ衝突範囲(バウンディングボックス)にdistanceを掛けた値をもとに衝突検出を行ないます。
たとえば、-1.5を指定した場合は、衝突範囲を1.5倍に拡大した状態で、衝突検出が行なわれます。また、より正確な衝突の情報を作成するために、gppcontact命令を使用することが可能です。

関連項目

setcoliオブジェクトのコリジョン設定(HGIMG3/HGIMG4共通)
findobjオブジェクト検索(HGIMG3/HGIMG4共通)
nextobj次のオブジェクト検索(HGIMG3/HGIMG4共通)
gppcontactオブジェクトの物理衝突情報を作成する(hgimg4)

サンプル逆引き (1)

test12.hsp

情報

プラグイン / モジュールHGIMG3/HGIMG4共通
バージョン3.7
作成日2022/06/07
著作者onitama
URLhttp://www.onionsoft.net/
備考hgimg3.as/hgimg4.as/hgimg4dx.asのいずれかをインクルードすること。
タイプ拡張命令
グループ拡張画面制御命令
対応環境
  • Windows 版 HSP
移植のヒントHGIMG4DXはDirectX9、HGIMG4はOpenGL3.1環境で動作
hs ファイルhsphelp\hgimg_common.hs