Ejemplo n.º 1
0
 public override void Use()
 {
     _isBoosting = true;
     _boostTimer = BoostDuration;
     PlayerController.Boost();
     PlayerRigidbody.DOMove(PlayerController.Visuals.forward * BoostDistance, BoostDuration).OnComplete(Finish);
 }
        public void UpdatePosition()
        {
            if (!IsInteracting)
            {
                Vector3 newPosition;

                if (MovementInputValue == Vector3.zero)
                {
                    return;
                }
                else
                {
                    float distanceToSling = Vector3.Distance(PlayerRigidbody.position, _slingshotPos);

                    // If user go backward / to the side, use backward curve to go slower and slower
                    if (MovementInputValue.z < 0.0f) //TODO IsGoingTowardTheSide()
                    {
                        newPosition = CalculateNewPosition(_slingshotSettings.SlingshotWalkBackwardCurve, distanceToSling);
                    }
                    // If user go forward / toward the center, use forward curve to go faster
                    else
                    {
                        newPosition = CalculateNewPosition(_slingshotSettings.SlingshotWalkForwardCurve, distanceToSling);
                    }

                    distanceToSling = Vector3.Distance(newPosition, _slingshotPos);

                    if (NewPositionIsValid(distanceToSling))
                    {
                        PlayerRigidbody.MovePosition(newPosition);
                    }
                }
            }
        }
 public void UpdatePosition()
 {
     if (!IsInteracting)
     {
         Vector3 newPosition = PlayerRigidbody.position + Time.deltaTime * MovementInputValue;
         PlayerRigidbody.MovePosition(newPosition);
     }
 }
Ejemplo n.º 4
0
    public void Shoot()
    {
        float aimAngle = (float)(Mathf.PI * PlayerRigidbody.rotation.eulerAngles.y / 180.0);

        if (NormalAttack.Direction.magnitude < NoAimZoneRadius)
        {
            NormalAttack.Direction = new Vector3(Mathf.Sin(aimAngle), 0f, Mathf.Cos(aimAngle));
            NormalAttack.Direction = AimAutomaticallyAtEnemy(NormalAttack.Direction, PlayerTransform, NormalAttack.Range + OrbitRadius);
        }
        FirePoint.position = PlayerTransform.position + NormalAttack.Direction.normalized * FirePointDistance;
        GameObject friendlyFire = Instantiate(Projectile, FirePoint.position, Quaternion.identity) as GameObject;

        friendlyFire.GetComponent <Rigidbody>().velocity = NormalAttack.Direction.normalized * NormalAttack.SpeedOfAttack;
        friendlyFire.tag = NormalAttack.TagProjectile;
        friendlyFire.GetComponent <ProjectileBehaviour>().NormalAttack = NormalAttack;
        PlayerRigidbody.MoveRotation(Quaternion.LookRotation(NormalAttack.Direction));
    }
Ejemplo n.º 5
0
        private void InstantiatePlayer_(IApp app, IAppNode viewRoot)
        {
            var instantiator = app.Instantiator;

            var gamepad   = app.Input.Controller;
            var rigidbody = new Rigidbody {
                Position      = (LevelConstants.SIZE * 10, LevelConstants.SIZE * 13),
                YAcceleration = PlayerConstants.GRAVITY,
                MaxYSpeed     = float.MaxValue,
            };
            var playerRigidbody = new PlayerRigidbody {
                Rigidbody = rigidbody,
            };

            var playerStateMachine = new PlayerStateMachine {
                State = PlayerState.STANDING,
            };

            var playerSounds =
                new PlayerSoundsComponent(app.Audio,
                                          rigidbody,
                                          playerStateMachine);
            var player = new PlayerComponent(gamepad,
                                             playerRigidbody,
                                             playerSounds,
                                             playerStateMachine);
            var itemSwitcher = new ItemSwitcherComponent(gamepad,
                                                         playerRigidbody,
                                                         playerSounds,
                                                         playerStateMachine);
            var vectorRenderer =
                new PlayerVectorRendererComponent(playerRigidbody,
                                                  playerStateMachine);

            instantiator.NewChild(viewRoot,
                                  player,
                                  playerSounds,
                                  itemSwitcher,
                                  vectorRenderer);
        }
Ejemplo n.º 6
0
 /*
  * Movement controls of the player
  */
 public void MovementControl()
 {
     Movement = new Vector3(LeftJoystick.Horizontal, 0f, LeftJoystick.Vertical).normalized *Speed *Time.deltaTime;
     PlayerRigidbody.MovePosition(PlayerTransform.position + Movement);
     PlayerRigidbody.MoveRotation(Quaternion.LookRotation(new Vector3(LeftJoystick.Horizontal, 0f, LeftJoystick.Vertical)));
 }