BGマップとスプライトの当たり判定を実行
es_bghit p1
p1(0)=判定を行うスプライトNo.
(プラグイン / モジュール : HSP3Dish)
BGマップに設定されたアトリビュート値をもとにスプライトとの当たり判定を実行します。
あらかじめ、es_bgattr命令によりマップデータに適切なアトリビュート値を設定しておく必要があります。
es_bghit命令は、スプライト移動時にBGマップのキャラクタに接触するかどうかを判定し、結果のリストを作成します。任意の座標をもとに当たり判定を行う場合は、es_bghitpos命令を使用してください。
p1パラメーターでスプライトNo.を指定します。スプライトはあらかじめBGとの当たり判定を有効にしておく必要があります。
スプライトを移動させる場合は、あらかじめes_adir、es_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_draw、es_move命令での移動処理はキャンセルされます。
複数のキャラクタに同時に当たった場合などは、複数の結果が作成されます。その場合は、es_getbghit命令で結果のインデックス値を指定して取得してください。
何らかの理由で実行に失敗した時は、システム変数statに0以外の値が返ります。
| es_bgmap | BGマップを初期化 | (HSP3Dish) |
| es_putbg | BGマップを表示 | (HSP3Dish) |
| es_bgattr | BGマップアトリビュート値を設定 | (HSP3Dish) |
| es_getbghit | BGマップとの当たり判定結果を取得 | (HSP3Dish) |
| es_bghitpos | BGマップとの当たり判定を実行 | (HSP3Dish) |
| プラグイン / モジュール | HSP3Dish |
| バージョン | 3.7 |
| 作成日 | 2025/02/04 |
| 著作者 | onitama |
| URL | https://hsp.tv/ |
| 備考 | hsp3dish.asをインクルードすること。 |
| タイプ | 拡張命令 |
| グループ | 拡張画面制御命令 |
| 対応環境 |
|
| hs ファイル | hsphelp\sprite.hs |