・概要
ここでは、主に、ゼロに関して解説する。
処理の基礎に関しては、
地形との接触判定を参照。
・床との接触判定
・・概要
前提となる条件は、以下の通りとなる。
・
傾斜床との接触判定がない場合に、接触判定を取得する(つまり、
傾斜床との接触判定がある場合は、傾斜床との接触判定が優先される)。傾斜床に関しては、
傾斜床を参照。
・
ゼロの場合は、床貫通判定がない場合に、判定を取得する。床貫通判定に関しては、
貫通可能な床を参照。
↓
傾斜床との
接触判定を優先させる場合。位置が滑らかに移動することになる。
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