・概要

 このゲームにおいては、様々な判定やカウントを用いている。故に、様々な判定やカウントを適宜リセットしないと、不具合が生じる可能性が出てくる

ダッシュのカウントをリセットしない場合の例。ダッシュのカウントが途中からになり、ダッシュの持続する時間が短くなる。

 そこで、以下のような処理をすることで、様々な判定やカウントを適宜リセットしている。

・通常状態関連

 通常状態以外の場合、オートリカバリーのカウントをリセットする。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action!="normal"){	//通常状態以外の場合
	count_zero_auto_recovery=0	//オートリカバリーのカウントをリセット
}
 

・歩き関連

 歩き以外の場合、位置の微調整の判定・カウントをリセットする。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action!="walk"){	//歩き以外の場合
	zero_action_walk_initial=0;count_zero_walk_initial=0	//位置の微調整の判定・カウントをリセット
}
 

・ジャンプ開始・ジャンプ関連

・・概要

 ゼロが空中にいる場合は、各種フットチップの影響もあり、多様なアクションを実行できる。それに応じて、各種の値のリセットに関する記述もやや複雑化している。

・・ダブルジャンプのカウント、エアダッシュのカウントなど

 通常状態・歩き・ダッシュ・壁ずり落ち・壁蹴り・梯子昇降の場合は、「ダブルジャンプのカウント」「エアダッシュのカウント」などをリセットする。
 この処理により、再び、ダブルジャンプやエアダッシュを行うことが可能になる

 沈む地形に関しては、沈む地形を参照。

↓ダブルジャンプのカウント、エアダッシュのカウントのリセット。通常状態や壁ずり落ちへの移行でリセットされる。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action=="normal" or _root.zero_action=="walk" or _root.zero_action=="dash" or _root.zero_action=="wall_slide" or _root.zero_action=="wall_kick" or _root.zero_action=="ladder"){	//通常状態・歩き・ダッシュ・壁ずり落ち・壁蹴り・梯子昇降の場合
	_root.count_zero_double_jump=0	//ダブルジャンプのカウントをリセット
	_root.count_zero_air_dash=0	//エアダッシュのカウントをリセット
	zero_sink_jump=0	//沈む地形から脱出した場合の判定をリセット
}
 

・・スプラッシュジャンプ判定、ダブルジャンプ判定など

 ジャンプ開始・ジャンプ以外の場合は、「スプラッシュジャンプ判定」「ダブルジャンプ判定」などをリセットする。

 バネに関しては、バネを参照。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action!="jump_start" and _root.zero_action!="jump"){	//ジャンプ開始・ジャンプ以外の場合
	zero_splash_jump=0	//スプラッシュジャンプ判定をリセット
	zero_double_jump=0	//ダブルジャンプ判定をリセット
	zero_spring_jump=0	//バネによるジャンプ判定をリセット
}
 

 「スプラッシュジャンプ判定」「ダブルジャンプ判定」に関しては、ジャンプ開始の際にリセットしているので、この記述が不要である可能性が高いが、念の為に記述している。

・・ホバリンク判定

 ジャンプ以外の場合は、「ホバリンク判定」をリセットする。

↓ホバリンク判定のリセット。通常状態やエアダッシュへの移行でリセットされる。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action!="jump"){	//ジャンプ以外の場合
	_root.zero_hovering=0	//ホバリンク判定をリセット
}
 

・ダッシュ・エアダッシュ関連

 ダッシュ・エアダッシュ以外の場合は、「ダッシュのカウント」「シャドウダッシュ判定」をリセットする。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action!="dash" and _root.zero_action!="air_dash"){	//ダッシュ・エアダッシュ以外の場合
	_root.count_zero_dash=0	//ダッシュのカウントをリセット
	_root.zero_shadow_dash=0	//シャドウダッシュ判定をリセット
}
 

・壁ずり落ち関連

 壁ずり落ち以外の場合は、壁ずり落ちのカウントをリセットする。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action!="wall_slide"){	//壁ずり落ち以外の場合
	count_zero_wall_slide=0	//壁ずり落ちのカウントをリセット
}
 

・壁蹴り関連

 壁蹴り以外の場合は、壁蹴りのカウントをリセットする。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action!="wall_kick"){	//壁蹴り以外の場合
	count_zero_wall_kick=0	//壁蹴りのカウントをリセット
}
 

・被ダメージ状態関連

 被ダメージ状態以外の場合は、ノックバックのカウントをリセットする。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action!="damage"){	//被ダメージ状態以外の場合
	count_zero_damage_knockback_time=0	//ノックバックのカウントをリセット
}
 

 このカウントは、被ダメージ状態に移行する際にリセットしているので、この記述が不要である可能性が高いが、念の為に記述している。

・ダッシュ属性

 ダッシュ・エアダッシュ・ジャンプ開始・ジャンプ・壁蹴り以外の場合は、ダッシュ属性を解除する。

ASのファイル:zero_reset_value.txt
 
if(_root.zero_action!="dash" and _root.zero_action!="air_dash" and _root.zero_action!="jump_start" and _root.zero_action!="jump" and _root.zero_action!="wall_kick"){	//ダッシュ・エアダッシュ・ジャンプ開始・ジャンプ・壁蹴り以外の場合
	_root.zero_dash=0	//ダッシュ属性を解除
}
 

・床貫通判定

 床貫通判定がある場合は、床貫通のカウントを増加させる。
 カウントが最大値の場合、判定・カウントをリセットする。

 床貫通判定に関しては、貫通可能な床を参照。

ASのファイル:zero_reset_value.txt
 
if(zero_through_floor==1){	//床貫通判定がある場合
	count_zero_through_floor++	//床貫通のカウントを増加させる
	if(count_zero_through_floor==count_zero_through_floor_max){zero_through_floor=0;count_zero_through_floor=0}	//カウントが最大値の場合,判定・カウントをリセット
}
else{count_zero_through_floor=0}	//床貫通判定がない場合,カウントをリセット
 

最終更新:2020年12月19日 09:34