・概要

 ここでは、主に、ゼロに関して解説する。
 処理の基礎に関しては、地形との接触判定を参照。
 傾斜床とほぼ同様の処理をしているので、傾斜床も参照。

 「傾斜天井」はロックマン系アクションには珍しい地形かもしれない。

・傾斜天井(右上がり)との接触判定

・・地形めり込み量

 ゼロの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