NGT Collision Manager - NGT_CollisionManager.js

▼NGT Collision Manager(ベルファーレ長田様作) - NGT_CollisionManager.js
https://plugin.fungamemake.com/archives/13703
ピクチャまたはNGT_Shooter.jsを用いて生成された弾に当たり判定を実装します。
ふりがな:こりじょんまねーじゃー
機能概要: ピクチャまたはNGT_Shooter.jsを用いて生成された弾に当たり判定を実装します。
利用規約(ライセンス): MITライセンス
作者:ベルファーレ長田
作者サイト:https://x.com/velfare_nagata
ダウンロードページ:https://raw.githubusercontent.com/VelfareNagata/RPG-Mak…
ファイル名:NGT_CollisionManager.js
プラグインのヘルプ:
/*:ja
* @plugindesc ピクチャまたはNGT_Shooter.jsを用いて生成された弾に
* 当たり判定を実装します。
*
* @help このプラグインの使い方は下記のサンプルゲームにて紹介しています。
* https://game.nicovideo.jp/atsumaru/games/gm9334
*
* ▼簡単な使い方---------------------------------------------------------------
* 1.プラグインパラメータ:〇〇格納変数番号 を設定して、
* 当たり判定の結果を変数で受け取れるようにする。
* 2.プラグインパラメータ:collisionDatas を設定して、
* 当たり判定を行うオブジェクトの設定を行う。
* 3.プラグインコマンド:COLLISION_CHECK_START を実行し、
* 当たり判定を開始する。
* 4.自動実行または並列処理のイベントにて、
* プラグインコマンド:COLLISION_RESULT_GET を実行し、
* 当たり判定の結果を取得/処理を行う。
* 5.プラグインコマンド:COLLISION_CHECK_STOP を実行し、
* 当たり判定を終了する。
* -----------------------------------------------------------------------------
*
* ▼プラグインコマンド---------------------------------------------------------
* 1.当たり判定を開始する場合
* ・COLLISION_CHECK_START
* ・当たり判定_開始
*
* 当たり判定処理を開始し、毎フレーム当たり判定を行います。
*
*
* 2.当たり判定を終了する場合
* ・COLLISION_CHECK_STOP
* ・当たり判定_終了
*
* 当たり判定処理を終了します。
*
*
* 3.当たり判定結果を取得する場合
* ・COLLISION_RESULT_GET
* ・当たり判定_結果_取得
*
* 現在のフレーム内で発生した当たり判定の結果を取得します。
* 結果はプラグインパラメータ:〇〇格納変数番号 で設定した変数に格納されます。
* 当たり判定結果が無い場合は全ての変数に-1が格納されます。
*
*
* 4.指定したオブジェクトの当たり判定を一時的に無効化する場合
* ・COLLISION_INVINCIBLE_ADD {0} {1} {2}
* ・当たり判定_無敵_追加 {0} {1} {2}
* {0}:対象オブジェクト インデックス
* {1}:衝突オブジェクト インデックス
* {2}:無敵時間(フレーム)
*
* 指定した時間、指定したオブジェクト同士の当たり判定を行わないようにします。
* 同じオブジェクト同士で連続で当たり判定が行われないように、
* 無敵時間を設けるために使用します。
* 対象オブジェクト インデックス 及び 衝突オブジェクト インデックス は
* プラグインコマンド:COLLISION_RESULT_GET で取得することを想定しています。
*
*
*
* ▼備考---------------------------------------------------------------------
* 1.当たり判定の親子関係について
* ・collisionDatas.fileNameで指定した画像のオブジェクトを基準に、
* collisionDatas.collisionTargetsで指定した画像のオブジェクトに対して
* 当たり判定判定処理を行います。
*
* オブジェクトA・Bで当たり判定を行うとき、
* fileNameにA、collisionTargetsにBを設定した場合は、
* 別途fileNameにB、collisionTargetsにAなどと設定する必要はありません。
* そのようにした場合、AとBの当たり判定は二重に行われてしまいます。
*
* 2.めりこみ量算出処理について
* めりこみ量の算出は、移動方向によって取得内容が異なります。
* X軸のめりこみ量は、左右に移動している時に当たった場合に取得できます。
* Y軸のめりこみ量は、上下に移動している時に当たった場合に取得できます。
*
* 正直めりこみ距離の算出処理が全然宜しくないので、誰か助言ください。
*
* ----------------------------------------------------------------------------
*
* @author ベルファーレ長田(゜∀゜)◆AHYA/HaiA.
*
* @param collisionDatas
* @desc 画像の当たり判定情報を指定します。
* @type struct<collisionData>[]
* @default []
*
* @param 判定結果(対象オブジェクト インデックス) 格納変数番号
* @desc 当たり判定結果のうち、判定対象オブジェクトの管理配列インデックス値を格納する変数番号を指定します。
* @type number
* @default 0
* @min 0
* @max 5000
*
* @param 判定結果(対象オブジェクト 画像ファイル名) 格納変数番号
* @desc 当たり判定結果のうち、判定対象オブジェクトの画像ファイル名を格納する変数番号を指定します。
* @type number
* @default 0
* @min 0
* @max 5000
*
* @param 判定結果(衝突オブジェクト インデックス) 格納変数番号
* @desc 当たり判定結果のうち、判定対象に衝突したオブジェクトの管理配列インデックス値を格納する変数番号を指定します。
* @type number
* @default 0
* @min 0
* @max 5000
*
* @param 判定結果(衝突オブジェクト 画像ファイル名) 格納変数番号
* @desc 当たり判定結果のうち、判定対象に衝突したオブジェクトの画像ファイル名を格納する変数番号を指定します。
* @type number
* @default 0
* @min 0
* @max 5000
*
* @param 判定結果(衝突 X座標) 格納変数番号
* @desc 当たり判定結果のうち、衝突した位置のX座標を格納する変数番号を指定します。
* @type number
* @default 0
* @min 0
* @max 5000
*
* @param 判定結果(衝突 Y座標) 格納変数番号
* @desc 当たり判定結果のうち、衝突した位置のY座標を格納する変数番号を指定します。
* @type number
* @default 0
* @min 0
* @max 5000
*
* @param 判定結果(衝突 角度) 格納変数番号
* @desc 当たり判定結果のうち、衝突した角度を格納する変数番号を指定します。
* @type number
* @default 0
* @min 0
* @max 5000
*
* @param 判定結果(めり込み量 X軸) 格納変数番号
* @desc 当たり判定結果のうち、衝突した相手に対してX軸方向にめり込んでいる長さを格納する変数番号を指定します。
* @type number
* @default 0
* @min 0
* @max 5000
*
* @param 判定結果(めり込み量 Y軸) 格納変数番号
* @desc 当たり判定結果のうち、衝突した相手に対してY軸方向にめり込んでいる長さを格納する変数番号を指定します。
* @type number
* @default 0
* @min 0
* @max 5000
*/
/*~struct~collisionData:ja
* @param fileName
* @desc 当たり判定を行う画像ファイル名を指定します。
* @type string
* @default
*
* @param collisionTargets
* @desc 当該画像への衝突対象一覧を指定します。
* @type struct<collisionTarget>[]
* @default []
*
* @param rectangle
* @desc 当該画像の当たり判定矩形一覧を指定します。
* @type struct<rectangle>
* @default {”x”:”0”,”y”:”0”,”width”:”0”,”height”:”0”}
*
* @param isResponse
* @desc trueの場合、衝突応答処理(めりこみ量算出)を行い、
* 「めり込み量 X軸」「めり込み量 Y軸」に値が格納されます。
* @type boolean
* @default false
*/
/*~struct~collisionTarget:ja
* @param fileName
* @desc 当たり判定を行う画像ファイル名を指定します。
* @type string
* @default
*
* @commented_param setSwitchNumber
* @commented_desc 当たり判定時にONにするスイッチの番号です。
* 0の場合はスイッチをONにしません。
* @commented_type number
* @commented_default 0
* @commented_min 0
* @commented_max 9999
*
* @commented_param commonEventNumber
* @commented_desc 当たり判定時に実行するコモンイベントの番号です。
* 0の場合はコモンイベントを実行しません。
* @commented_type number
* @commented_default 0
* @commented_min 0
* @commented_max 9999
*/
/*~struct~rectangle:ja
* @param x
* @desc 当たり判定矩形の左上X座標を指定します。
* @type number
* @default 0
* @min -9999
* @max 9999
*
* @param y
* @desc 当たり判定矩形の左上Y座標を指定します。
* @type number
* @default 0
* @min -9999
* @max 9999
*
* @param width
* @desc 当たり判定矩形の横幅を指定します。
* @type number
* @default 0
* @min 0
* @max 9999
*
* @param height
* @desc 当たり判定矩形の縦幅を指定します。
* @type number
* @default 0
* @min 0
* @max 9999
*/
