・概要
このゲームにおいては、様々な判定やカウントを用いている。故に、様々な判定やカウントを適宜リセットしないと、不具合が生じる可能性が出てくる。
↓
ダッシュのカウントをリセットしない場合の例。ダッシュのカウントが途中からになり、ダッシュの持続する時間が短くなる。
そこで、以下のような処理をすることで、様々な判定やカウントを適宜リセットしている。
・通常状態関連
通常状態以外の場合、オートリカバリーのカウントをリセットする。
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