diff options
author | chai <chaifix@163.com> | 2020-10-27 09:08:54 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-27 09:08:54 +0800 |
commit | 8834c57999ce2e9d88262d5e7d2f31b65eaf3477 (patch) | |
tree | 6d2a7ff8a822f2ac13607d583191bc7e5757c9a2 /Assets/Scripts/Test/SaionjiScript_Ability.cs | |
parent | 97b64a629a95980d9a2f6c9e37b4cb44acf33a59 (diff) |
*跳跃
Diffstat (limited to 'Assets/Scripts/Test/SaionjiScript_Ability.cs')
-rw-r--r-- | Assets/Scripts/Test/SaionjiScript_Ability.cs | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/Assets/Scripts/Test/SaionjiScript_Ability.cs b/Assets/Scripts/Test/SaionjiScript_Ability.cs index c3fa94ce..10f358e4 100644 --- a/Assets/Scripts/Test/SaionjiScript_Ability.cs +++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs @@ -19,6 +19,18 @@ public partial class SaionjiScript : MonoBehaviour return new ConditionAnd(c1, c2);
}
+
+ ConditionBase Ands(params ConditionBase[] cond)
+ {
+ List<ConditionBase> conditions = new List<ConditionBase>();
+ for(int i = 0;i < cond.Length; ++i)
+ {
+ conditions.Add(cond[i]);
+ }
+ ConditionMultiAnd and = new ConditionMultiAnd(conditions);
+ return and;
+ }
+
ConditionBase Or(ConditionBase c1, ConditionBase c2)
{
return new ConditionOr(c1,c2);
@@ -42,8 +54,8 @@ public partial class SaionjiScript : MonoBehaviour jumpConfig.collider = m_BodyCollider;
jumpConfig.body = m_Body;
jumpConfig.neutralJumpSpeedY = 10f;
- jumpConfig.fowardJumpSpeedX = 1f;
- jumpConfig.backwardJumpSpeedX = -1f;
+ jumpConfig.fowardJumpSpeedX = 5f;
+ jumpConfig.backwardJumpSpeedX = -5f;
jumpConfig.animJump = Anim_JumpStart;
jumpConfig.animJumpEnd = Anim_JumpEnd;
jumpConfig.animNU = Anim_JumpUp;
@@ -83,6 +95,7 @@ public partial class SaionjiScript : MonoBehaviour ActionTowardRight towardRight = new ActionTowardRight(this.transform);
ActionJump toJump = new ActionJump(m_AbilitySystem, jump);
+ ActionJumpForward toJumpForward = new ActionJumpForward(m_AbilitySystem, jump);
ActionSwitchAbility switchToMove = new ActionSwitchAbility(m_AbilitySystem, move);
ActionSwitchAbility switchToIdle = new ActionSwitchAbility(m_AbilitySystem, idle);
@@ -114,6 +127,7 @@ public partial class SaionjiScript : MonoBehaviour ConditionNoMoveButtonHold condNoMoveButtonHold = new ConditionNoMoveButtonHold();
ConditionButtonHold condRightButtonHold = new ConditionButtonHold(GamepadButton.Right);
ConditionButtonHold condLeftButtonHold = new ConditionButtonHold(GamepadButton.Left);
+ ConditionCommand condUpCmd = new ConditionCommand(GamepadButton.Up);
ConditionCommand condTriangleCmd = new ConditionCommand(GamepadButton.Triangle);
ConditionCommand condCircleCmd = new ConditionCommand(GamepadButton.Circle);
ConditionCommand condCrossCmd = new ConditionCommand(GamepadButton.Cross);
@@ -128,6 +142,7 @@ public partial class SaionjiScript : MonoBehaviour ConditionHit condIsHit = new ConditionHit(this);
ConditionJumpDone condJumpDone = new ConditionJumpDone(jump);
+ ConditionJumpOnGround condJumpOnGround = new ConditionJumpOnGround(jump);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// common triggers
@@ -142,7 +157,7 @@ public partial class SaionjiScript : MonoBehaviour ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// idle ability
- trigger = new Trigger(condTriangleCmd, toJump) ;
+ trigger = new Trigger(condUpCmd, toJump) ;
idle.AddTrigger(trigger);
trigger = new Trigger(And(condTowardRight, condDRC), new List<ActionBase> { wipeCmdRecord, switchToSuperKick });
idle.AddTrigger(trigger);
@@ -166,6 +181,8 @@ public partial class SaionjiScript : MonoBehaviour idle.AddTrigger(triggerTurnLeft);
// move ability
+ trigger = new Trigger(Or(Ands(condRightButtonHold, condTowardRight, condUpCmd), Ands(condLeftButtonHold, condTowardLeft, condUpCmd)), toJumpForward);
+ move.AddTrigger(trigger);
trigger = new Trigger(And(condTowardRight, And(condRightCmd, condRight2Cmd)), new List<ActionBase> { wipeCmdRecord, switchToDash, });
move.AddTrigger(trigger);
trigger = new Trigger(And(condTowardLeft, And(condLeftCmd, condLeft2Cmd)), new List<ActionBase> { wipeCmdRecord, switchToDash });
@@ -187,8 +204,10 @@ public partial class SaionjiScript : MonoBehaviour trigger = new Trigger(condCrossCmd, switchToSideKick);
move.AddTrigger(trigger);
- // jump ability
- trigger = new Trigger(condJumpDone, switchToIdle);
+ // jump ability
+ trigger = new Trigger(condJumpOnGround, new ActionSetVelocity(m_Body, Vector3.zero), TriggerOnlyOnce.On, TriggerSwallow.Off);
+ jump.AddTrigger(trigger);
+ trigger = new Trigger(condJumpDone, switchToIdle);
jump.AddTrigger(trigger);
// dash ability
|