・概要
・梯子との接触判定
梯子との
接触判定を取得する。また、位置取得を行う。
↓梯子のMC。
・①:「ladder_x」。梯子のx方向の位置。
・②:「ladder_ymin」。梯子の上端の位置。
ASのファイル:zero_hit_landform_enemy.txt
_root.zero_hit_ladder=0 //判定をリセットしておく
for(i=1;i<=_root.i_ladder;i++){
landform=_root.board["ladder_"+i] //参照先を変数に保存
if(this.hitTest(landform)){
_root.zero_hit_ladder=i //接触判定
ladder_x=landform._x;ladder_ymin=landform._y //位置取得
︙
break //ループを離脱
}
}
・梯子との接触判定がある場合の処理(梯子昇降への移行)
・・概要
梯子昇降への移行に関して、前提となる条件は、以下の通りとなる。
・梯子との接触判定がある。
・通常状態・ジャンプ。
ASのファイル:zero_effect_landform_enemy_1.txt
if(_root.zero_hit_ladder!=0 and (_root.zero_action=="normal" or _root.zero_action=="jump")){ //通常状態・ジャンプの場合
︙
}
・・梯子昇降への移行(1)
上キーの入力がある場合の
梯子昇降への移行の条件は、以下の通りとなる。
・
ゼロのy方向の位置が梯子の上端の位置より下にある。
同時に、位置調整を行い、速度を0にする。
↓
梯子昇降への移行(1)。
・①:「_parent._y」。ゼロのy方向の位置。
・②:「ladder_ymin」。梯子の上端の位置。①>②が満たされているため、梯子昇降に移行できる。
ASのファイル:zero_effect_landform_enemy_1.txt
if(keydown_up==1){ //上キーの入力がある場合
if(_parent._y>ladder_ymin){ //ゼロのy方向の位置が梯子の上端の位置より下にある場合
_parent._x=ladder_x;_parent._y-=velocity_zero_ladder //位置調整
_root.velocity_zero_x=0;_root.velocity_zero_y=0 //速度を0にする
_root.zero_action="ladder" //梯子昇降に移行
}
}
・・梯子昇降への移行(2)
下キーの入力がある場合の
梯子昇降への移行の条件は、以下の通りとなる。
・
ゼロのy方向の位置が梯子の上端の位置より上にある。
・床との接触判定がある。
・攻撃中ではない。
同時に、位置調整を行い、速度を0にする。
また、
床貫通判定を付加する。床貫通判定に関しては、
貫通可能な床を参照。
↓
梯子昇降への移行(2)。
・①:「_parent._y」。ゼロのy方向の位置。
・②:「ladder_ymin」。梯子の上端の位置。①<②が満たされているため、梯子昇降に移行できる。
ASのファイル:zero_effect_landform_enemy_1.txt
else if(keydown_down==1){ //下キーの入力がある場合
if(_parent._y<ladder_ymin and _root.zero_hit_floor!=0 and _root.zero_buster=="none" and _root.zero_saber=="none"){ //ゼロのy方向の位置が梯子の上端の位置より上にある場合・床との接触判定がある場合・攻撃中ではない場合
_parent._x=ladder_x;_parent._y+=MC_height_down/2 //位置調整
_root.velocity_zero_x=0;_root.velocity_zero_y=0 //速度を0にする
zero_through_floor=1 //床貫通判定
_root.zero_action="ladder" //梯子昇降に移行
}
}
最終更新:2020年12月19日 09:31