예제 #1
0
    private void ProcessInput()
    {
        KeyCode KCode = KeyCode.JoystickButton0;

        if (Input.GetKeyDown(KCode))
        {
            PlayerActions.Jump();
        }

        if (Input.GetKeyDown(KCode + FXboxControllerButton.Button_X))
        {
            GameObject WeaponGO = PlayerScript.GetWeapon();

            if (WeaponGO == null)
            {
                float AttackDamage = PlayerScript.GetAttackDamage();
                PlayerActions.Attack(AttackDamage);
                PlayerScript.ApplyAttackFatigue();
            }
        }

        if (Input.GetKey(KCode + FXboxControllerButton.Button_X))
        {
            GameObject WeaponGO = PlayerScript.GetWeapon();
            if (WeaponGO != null)
            {
                GGun WeaponScript = WeaponGO.GetComponent <GGun>();
                WeaponScript.Fire();
            }
        }

        if (Input.GetKey(KCode + FXboxControllerButton.Button_B))
        {
            PlayerActions.IncreaseGrenadeTrajectory();
        }

        if (Input.GetKeyUp(KCode + FXboxControllerButton.Button_B))
        {
            PlayerActions.ReleaseGrenade();
        }

        float AxisX = Input.GetAxis("XboxP1_DPadHorizontal");

        if (AxisX < -DeadZone)
        {
            if (!bTappedLeft)
            {
                bTappedLeft = true;
            }
            //TODO::The rest of the double tap impl.

            PlayerActions.MoveLeft();
        }
        else if (AxisX > DeadZone)
        {
            PlayerActions.MoveRight();
        }
    }
예제 #2
0
    private void ProcessKeyboardInput()
    {
        /*Move Left*/
        if (Input.GetKey(KeyCode.A))
        {
            PlayerActions.MoveLeft();
        }
        /*Move right*/
        else if (Input.GetKey(KeyCode.D))
        {
            PlayerActions.MoveRight();
        }

        if (Input.GetKeyDown(KeyCode.W))
        {
            PlayerActions.Jump();
        }

        if (Input.GetKeyDown(KeyCode.E))
        {
            float AttackDamage = PlayerScript.GetAttackDamage();
            PlayerActions.Attack(AttackDamage);
            PlayerScript.ApplyAttackFatigue();
        }

        if (Input.GetKey(KeyCode.F))
        {
            GameObject WeaponGO = PlayerScript.GetWeapon();

            if (WeaponGO == null)
            {
                PlayerActions.IncreaseGrenadeTrajectory();
            }
        }

        if (Input.GetKeyUp(KeyCode.F))
        {
            GameObject WeaponGO = PlayerScript.GetWeapon();

            if (WeaponGO == null)
            {
                PlayerActions.ReleaseGrenade();
            }
        }

        if (Input.GetKey(KeyCode.F))
        {
            GameObject WeaponGO = PlayerScript.GetWeapon();

            if (WeaponGO != null)
            {
                GGun WeaponScript = WeaponGO.GetComponent <GGun>();
                WeaponScript.Fire();
            }
        }
    }
예제 #3
0
파일: GPlayer.cs 프로젝트: b1nary0/Shwinn
    public void TakeDamage(FDamageInfo DamageInfo)
    {
        if (bCanBeDamaged)
        {
            ElapsedHealthRegenDelay = 0;

            Health -= DamageInfo.DamageDone;
            if (DamageInfo.DamageImpulse > 0)
            {
                // Apply an impulse from the direction the damage is coming from.
                Vector3 ImpulseDirection = transform.position - DamageInfo.DamageOrigin;
                ImpulseDirection.Normalize();

                PhysicsBody.AddForce(DamageInfo.DamageImpulse * ImpulseDirection, ForceMode2D.Force);
            }

            float CurrentGrenadeImpulse = PlayerActions.GetGrenadeImpulse();
            if (CurrentGrenadeImpulse > 0)
            {
                PlayerActions.ReleaseGrenade();
            }
        }
    }