・概要
沈む
地形との接触判定がある場合は、徐々に沈んでいく。また、速度が変化する。
ライト装着中の場合に関しては、
ボディチップの「・ライト」を参照。
地味な地形だが、処理は結構面倒。
・loadの処理
・・速度
「沈む地形における沈む速度の最大値」を設定する。
ASのファイル:zero_load.txt
velocity_zero_sink_max=0.12 //沈む地形における沈む速度の最大値
・・沈む地形から脱出した場合の判定
「・沈む地形との接触判定がある場合の処理」を参照。
ASのファイル:zero_load.txt
zero_sink_jump=0 //沈む地形から脱出した場合の判定
・沈む地形との接触判定
ゼロと沈む地形との接触判定を取得する。また、位置取得を行う。
ASのファイル:zero_hit_sink.txt
hit_sink=0 //判定をリセットしておく
for(i=1;i<=_root.i_sink;i++){
landform=_root.board["sink_"+i] //参照先を変数に保存
if(this.hitTest(landform)){
hit_sink=i //接触判定
sink_ymin=landform._y //位置取得
︙
break //ループを離脱
}
}
・沈む地形との接触判定がある場合の処理
・・速度
沈む地形との接触判定がある場合は、以下の処理を行う。
・「沈む地形から脱出した場合の判定」を付加する。
・ジャンプの初速度の値よりも沈んでいる場合は、y方向の速度を半減させる。ジャンプの初速度の値よりも沈んでいない場合は、y方向の速度が半減せずに、脱出可能になる。
・x方向の速度を半減させる。
・y方向の速度を制限する。この処理により、ゼロが徐々に沈むことになる。
↓沈む地形との接触判定がある場合。
↓
ジャンプの初速度の値よりも沈んでいる場合。
・①:「this.getBounds(_root.board).yMax」。ゼロのhitrectの下端の位置。
・②:「sink_ymin」。沈む地形の上端の位置。
・③:「_root.velocity_zero_jump」。ジャンプの初速度の値。
ASのファイル:zero_effect_landform_enemy_1.txt
if(_root.zero_hit_sink!=0){
if(this.getBounds(_root.board).yMax>sink_ymin+_root.velocity_zero_jump){_root.velocity_zero_y/=2} //ジャンプの初速度の値よりも沈んでいる場合,y方向の速度を半減させる
if(_root.zero_tip_body_light==-1){ //ライト装着中ではない場合
zero_sink_jump=1 //沈む地形から脱出した場合の判定
_root.velocity_zero_x/=2 //x方向の速度を半減させる
if(_root.velocity_zero_y>velocity_zero_sink_max){_root.velocity_zero_y=velocity_zero_sink_max} //y方向の速度の制限
}
︙
}
・・ジャンプ、エアダッシュ
「沈む地形から脱出した場合の判定」がある場合、ジャンプ・エアダッシュは、x方向の速度を半減させる。
ASのファイル:zero_action_jump.txt、zero_action_air_dash.txt
if(_root.zero_hit_sink==0 and zero_sink_jump==1){_root.velocity_zero_x/=2} //沈む地形から脱出した場合,x方向の速度を半減させる
・・「沈む地形から脱出した場合の判定」のリセット
最終更新:2020年12月19日 10:29