・概要

 ここでは、主に、ゼロに関して解説する。
 処理の基礎に関しては、地形との接触判定を参照。

・床との接触判定

・・概要

 前提となる条件は、以下の通りとなる。
傾斜床との接触判定がない場合に、接触判定を取得する(つまり、傾斜床との接触判定がある場合は、傾斜床との接触判定が優先される)。傾斜床に関しては、傾斜床を参照。
ゼロの場合は、床貫通判定がない場合に、判定を取得する。床貫通判定に関しては、貫通可能な床を参照。

傾斜床との接触判定を優先させない場合。傾斜床(補助)の処理の影響により、床との接触判定と位置調整が行われるため、位置が大きく移動することになる。

傾斜床との接触判定を優先させる場合。位置が滑らかに移動することになる。

ASのファイル:zero_hit_floor.txt
 
if(hit_sloped_floor==0){	//傾斜床との接触判定がない場合
	if(MC_hit_landform!="zero" or (MC_hit_landform=="zero" and zero_through_floor==0)){	//ゼロの場合・床貫通判定がない場合,判定を取得する}
}
 

・・接触判定、位置調整

 地形めり込み量が最大値以下の場合、接触判定を付加し、位置調整を行う

↓地形めり込み量。

・①:「this.getBounds(_root.board).yMax」。ゼロのhitrectの下端の位置。
・②:「landform_ymin」。
・③:「hit_y_floor」。①-②。
・④:「hit_y_max_down」。③<=④の条件が満たされるため、接触判定が付加される。

ASのファイル:zero_hit_floor.txt
 
				hit_y_floor=this.getBounds(_root.board).yMax-landform_ymin	//地形めり込み量if(hit_y_floor<=hit_y_max_down){	//地形めり込み量が最大値以下の場合
					hit_floor=i	//接触判定
					_parent._y-=hit_y_floor	//位置調整}
 

・地形に挟まれることによる即死判定(床)

 「地形に挟まれることによる即死判定(床)」を付加するこの処理は、壁による位置調整の後(=ゼロの位置(x方向)が確定した後)に行う必要がある
 壁による位置調整の前に行う場合、「壁にめり込んだまま、床と”単純”な接触判定を取得することで、「地形に挟まれることによる即死判定(床)」が付加される」可能性が生じる。
 このことは、天井・傾斜床傾斜天井に関しても同様である。

↓壁による位置調整の前に判定を取得する場合。「地形に挟まれることによる即死判定(床)」が付加される。

↓壁による位置調整の後に判定を取得する場合。「地形に挟まれることによる即死判定(床)」が付加されない。

ASのファイル:zero_hit_floor.txt
 
				caught_floor=i	//地形に挟まれることによる即死判定
 

最終更新:2020年12月19日 10:57