・概要

 「梯子昇降」とは、梯子を昇り降りするアクションを指す。

↓梯子昇降。

 梯子昇降への移行に関しては、梯子を参照。

・loadの処理

・・速度

 「・方向、速度」の「・・速度」を参照。
 このゲームにおいては、速度は1種類のみだが、複数用意して、チップ(パーツ)等により変化させても良いかもしれない。

ASのファイル:zero_load.txt
 
velocity_zero_ladder=2	//梯子昇降の速度
 

・モーション

 通常状態とほぼ同様の処理を行っている。

ASのファイル:zero_action_ladder.txt
 
if(_root.zero_buster=="none" and _root.zero_saber=="none"){_parent.zero_AA.gotoAndStop("zero_AA_ladder")}	//攻撃中ではない場合
 

・位置調整

 梯子昇降中は、常に「梯子のx方向の位置」に位置調整する。

ASのファイル:zero_action_ladder.txt
 
_parent._x=ladder_x	//位置調整
 
・「ladder_x」:梯子のx方向の位置。梯子の「・梯子との接触判定」を参照。

・方向、速度

・・概要

 「方向の変更」や「速度の付加」は、攻撃中ではない場合のみ行える

ASのファイル:zero_action_ladder.txt
 
if(_root.zero_buster=="none" and _root.zero_saber=="none"){	//攻撃中ではない場合}
 

・・方向

 左右キーの入力がある場合、方向を変更する

↓方向の変更。分かりやすくするため、バスターを発射している。

ASのファイル:zero_action_ladder.txt
 
	if(keydown_right==1){_root.zero_direction=1}	//右キーの入力がある場合,右向きに変更
	else if(keydown_left==1){_root.zero_direction=-1}	//左キーの入力がある場合,左向きに変更
 

 なお、原作においては、「左右キーの入力をしつつ攻撃した場合」にのみ、方向が変更される。

・・速度

・・・概要

 y方向の速度を0にしておき、上下キーの入力がある場合に、速度を付加させている。

ASのファイル:zero_action_ladder.txt
 
_root.velocity_zero_y=0	//y方向の速度を0にする
 

・・・梯子を昇る

 上キーの入力がある場合は、梯子を昇る。ただし、天井・傾斜天井との接触判定がない場合に限定される。

ASのファイル:zero_action_ladder.txt
 
	if(keydown_up==1 and _root.zero_hit_ceiling==0 and _root.zero_hit_sloped_ceiling==0){_root.velocity_zero_y=-velocity_zero_ladder}	//上キーの入力がある場合,梯子を昇る(天井・傾斜天井との接触判定がない場合)
 
・「keydown_up==1」:上キーの入力がある。
・「_root.zero_hit_ceiling==0 and _root.zero_hit_sloped_ceiling==0」:天井・傾斜天井との接触判定がない。
・「_root.velocity_zero_y=-velocity_zero_ladder」:ゼロのy方向の速度に、梯子昇降の速度を代入する。上方向なので、「-」の符号を付けている。

・・・梯子を降りる

 下キーの入力がある場合は、梯子を降りる

ASのファイル:zero_action_ladder.txt
 
	else if(keydown_down==1){_root.velocity_zero_y=velocity_zero_ladder}	//下キーの入力がある場合,梯子を降りる
 
・「keydown_down==1」:下キーの入力がある。
・「_root.velocity_zero_y=velocity_zero_ladder」:ゼロのy方向の速度に、梯子昇降の速度を代入する。

・他のアクションへの移行

・・概要

 梯子昇降からは、ジャンプや通常状態に移行する。いずれの場合も、ゼロのy方向の速度を0にしている。

・・ジャンプへの移行

 梯子との接触判定がない場合、または、ジャンプキーの入力がある場合に、ジャンプに移行する。

↓ジャンプへの移行(梯子との接触判定がない場合)。

↓ジャンプへの移行(ジャンプキーの入力がある場合)。

ASのファイル:zero_action_ladder.txt
 
if(_root.zero_hit_ladder==0 or keydown_new_jump==1){_root.velocity_zero_y=0;_root.zero_action="jump"}	//梯子との接触判定がない場合,ジャンプキーの入力がある場合,ジャンプに移行
 

・・通常状態への移行(1)

 「ゼロの脚付近の位置」が梯子の上端の位置より上にある場合、位置調整を行い、通常状態に移行する。梯子の上端の位置の取得に関しては、梯子の「・梯子との接触判定」を参照。
 これは、「梯子を昇りきった状態」である。

↓通常状態への移行(1)。

↓通常状態への移行(1)の条件。

・①:「_parent._y」。ゼロのy方向の位置。
・②:「MC_height_down」。ゼロのhitrectの高さ(下)。hitrectの「・hitrectの端の位置・幅・高さ」を参照。
・③:「ゼロの脚付近の位置」。①+②/2。
・④:「ladder_ymin」。梯子の上端の位置。③<④の条件が満たされるため、通常状態に移行することになる。

ASのファイル:zero_action_ladder.txt
 
else if(_parent._y+MC_height_down/2<ladder_ymin){	//ゼロの脚付近の位置が梯子の上端の位置より上にある場合
	_root.velocity_zero_y=0
	hit_y_ladder=this.getBounds(_root.board).yMax-ladder_ymin	//地形めり込み量
	_parent._y-=hit_y_ladder	//位置調整
	_root.zero_action="normal"	//通常状態に移行
}
 
・「_parent._y-=hit_y_ladder」:床などと同様の位置調整を行う。を参照。

 原作においては、専用のモーションがあるが、このゲームにおいては、(作るのが面倒臭すぎるので)専用のモーションはない。

・・通常状態への移行(2)

 床・傾斜床・沈む地形との接触判定がある場合は、通常状態に移行する。

↓通常状態への移行(2)。

ASのファイル:zero_action_ladder.txt
 
else if(_root.zero_hit_floor!=0 or _root.zero_hit_sloped_floor!=0 or _root.zero_hit_sink!=0){_root.velocity_zero_y=0;_root.zero_action="normal"}	//床・傾斜床・沈む地形との接触判定がある場合,通常状態に移行
 

最終更新:2020年12月12日 11:01