es_bghit

BGマップとスプライトの当たり判定を実行

es_bghit p1

p1(0)=判定を行うスプライトNo.

(プラグイン / モジュール : HSP3Dish)

解説

BGマップに設定されたアトリビュート値をもとにスプライトとの当たり判定を実行します。
あらかじめ、es_bgattr命令によりマップデータに適切なアトリビュート値を設定しておく必要があります。
es_bghit命令は、スプライト移動時にBGマップのキャラクタに接触するかどうかを判定し、結果のリストを作成します。任意の座標をもとに当たり判定を行う場合は、es_bghitpos命令を使用してください。
p1パラメーターでスプライトNo.を指定します。スプライトはあらかじめBGとの当たり判定を有効にしておく必要があります。
スプライトを移動させる場合は、あらかじめes_adires_apos命令などにより移動量を設定しておく必要があります。
移動量が0の場合でも、重力などの設定がある場合、自動的に移動方向が設定されます。

BGマップとスプライトの当たり判定結果は、es_bghitpos命令と同様にBGマップ当たり判定の結果が作成されます。この結果は、es_getbghit命令で取得することができます。
また、es_get命令で取得できるスプライトパラメーター「ESI_MOVERES」に結果の概要が格納されます。この値のbit0~7(0~255)には自身と重なる領域のマップアトリビュートOpt値(bit8~15)が格納されています。
また、この値は以下のフラグを持っています。

      値 マクロ名          内容
--------------------------------------------------
    0x100 ESSPRES_XBLOCK    X方向に衝突があった
    0x200 ESSPRES_YBLOCK    Y方向に衝突があった
    0x400 ESSPRES_GROUND    重力方向の足場に接地している
    0x800 ESSPRES_EVENT     イベントのアトリビュートがあった

es_bghit命令により移動が行われたスプライトは、es_drawes_move命令での移動処理はキャンセルされます。
複数のキャラクタに同時に当たった場合などは、複数の結果が作成されます。その場合は、es_getbghit命令で結果のインデックス値を指定して取得してください。
何らかの理由で実行に失敗した時は、システム変数statに0以外の値が返ります。

関連項目

es_bgmapBGマップを初期化(HSP3Dish)
es_putbgBGマップを表示(HSP3Dish)
es_bgattrBGマップアトリビュート値を設定(HSP3Dish)
es_getbghitBGマップとの当たり判定結果を取得(HSP3Dish)
es_bghitposBGマップとの当たり判定を実行(HSP3Dish)

情報

プラグイン / モジュールHSP3Dish
バージョン3.7
作成日2025/02/04
著作者onitama
URLhttps://hsp.tv/
備考hsp3dish.asをインクルードすること。
タイプ拡張命令
グループ拡張画面制御命令
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\sprite.hs