・概要
ここでは、主に、ゼロに関して解説する。
処理の基礎に関しては、
地形との接触判定を参照。
傾斜床とほぼ同様の処理をしているので、
傾斜床も参照。
「傾斜天井」はロックマン系アクションには珍しい地形かもしれない。
・傾斜天井(右上がり)との接触判定
・・地形めり込み量
ゼロのx方向の位置が、傾斜天井(右上がり)の左右の端の位置の間にある場合の「地形めり込み量」は、以下の図の通りとなる。
↓地形めり込み量。
・①:
ゼロのx方向の位置に対応する、傾斜天井(右上がり)の高さの位置。下の図において算出している。
・②:「this.getBounds(_root.board).yMin」。ゼロのhitrectの上端の位置。
・③:「hit_y_sloped_ceiling」。①-②。
↓地形めり込み量。
・①:「landform_xmin」。
・②:「_parent._x」。ゼロのx方向の位置。
・③:②-①。
・④:③×「landform_gradient」。
・⑤:「landform_ymax」。
・⑥:
ゼロのx方向の位置に対応する、傾斜天井(右上がり)の高さの位置。⑤-④。
以上を纏めると、以下の記述の式となる。
ASのファイル:zero_hit_sloped_ceiling_sub.txt
if(sloped_ceiling_type==1){hit_y_sloped_ceiling=landform_ymax-landform_gradient*(_parent._x-landform_xmin)-this.getBounds(_root.board).yMin} //地形めり込み量
・傾斜天井(右下がり)との接触判定
・・地形めり込み量
ゼロのx方向の位置が、傾斜天井(右下がり)の左右の端の位置の間にある場合の「地形めり込み量」は、以下の図の通りとなる。
↓地形めり込み量。
・①:
ゼロのx方向の位置に対応する、傾斜天井(右下がり)の高さの位置。下の図において算出している。
・②:「this.getBounds(_root.board).yMin」。ゼロのhitrectの上端の位置。
・③:「hit_y_sloped_ceiling」。①-②。
↓地形めり込み量。
・①:「landform_xmin」。
・②:「_parent._x」。ゼロのx方向の位置。
・③:②-①。
・④:③×「landform_gradient」。
・⑤:「landform_ymin」。
・⑥:
ゼロのx方向の位置に対応する、傾斜天井(右下がり)の高さの位置。④+⑤。
以上を纏めると、以下の記述の式となる。
ASのファイル:zero_hit_sloped_ceiling_sub.txt
else{hit_y_sloped_ceiling=landform_ymin+landform_gradient*(_parent._x-landform_xmin)-this.getBounds(_root.board).yMin} //地形めり込み量
・地形に挟まれることによる即死判定(天井)
地形めり込み量が0以上の場合は、地形に挟まれることによる即死判定(天井)を付加する。
ASのファイル:zero_hit_sloped_ceiling_sub.txt
if(hit_y_sloped_ceiling>=0){caught_ceiling=i} //地形に挟まれることによる即死判定
・バスターと傾斜天井との接触判定
・・概要
「バスターと傾斜天井との接触判定」の場合は、「地形めり込み量」を算出する位置の基準を変更する。
ここでは、傾斜天井(右上がり)との
接触判定を例にする。
・・バスターと傾斜天井との接触判定(1)
大半のバスターは、x方向は「バスターの左端」、y方向は「バスターの中心」の位置を基準にしている。
ASのファイル:hit_sloped_ceiling.txt
if(buster_hit_landform==1){hit_y_sloped_ceiling=landform_ymax-landform_gradient*(this.getBounds(_root.board).xMin-landform_xmin)-_parent._y} //バスター(1)
ゼロにおける式を、以下のように変更している。
・「_parent._x」→「this.getBounds(_root.board).xMin」。
・「this.getBounds(_root.board).yMin」→「_parent._y」。
・・バスターと傾斜天井との接触判定(2)
一部のバスターは、x方向は「バスターの左端」、y方向は「バスターの上端」の位置を基準にしている。
ASのファイル:hit_sloped_ceiling.txt
else if(buster_hit_landform==2){hit_y_sloped_ceiling=landform_ymax-landform_gradient*(this.getBounds(_root.board).xMin-landform_xmin)-this.getBounds(_root.board).yMin} //バスター(2)
ゼロにおける式を、以下のように変更している。
・「_parent._x」→「this.getBounds(_root.board).xMin」。
最終更新:2020年12月19日 08:52