コード例 #1
0
        /// <summary>
        /// Se comprueba si la bola ha entrado en el trigger de bateo
        /// Golpea la bola
        /// </summary>
        /// <param name="collision"></param>
        private void OnTriggerEnter2D(Collider2D collision)
        {
            Ball ball = collision.GetComponent <Ball>(); //Obtenemos la referencia de la pelota

            if (ball != null && hitState == HitState.BALLHIT)
            {
                ball.Hit(GetForceMultiplier());
                hitState = HitState.PLATFORM;
                OnHit?.Invoke();
            }
        }
コード例 #2
0
        /// <summary>
        /// Inicia la fase de bateo
        /// Coloca al player en la base correspondiente para iniciar el bateo
        /// Dispara la pelota hacia el jugador
        /// Informa a los suscritos
        /// </summary>
        private void StartRound()
        {
            player.transform.position = spacialBases[lastBase].transform.position;
            player.transform.rotation = spacialBases[lastBase].transform.rotation;

            ball.transform.position = -spacialBases[lastBase].transform.position;
            ball.ShootBall();

            playerHit.StartHit();
            OnStartRound?.Invoke();
        }
コード例 #3
0
        /// <summary>
        /// Obtiene input de movimiento y salto
        /// Realiza el salto en caso de input
        /// Detecta si está apoyado en el suelo actualmente
        /// </summary>
        private void Update()
        {
            if (!PauseManager.GameIsPaused)
            {
                if (CanMove)
                {
                    // Movimiento
                    MoveDir = Input.GetAxisRaw("Horizontal");

                    // Salto
                    if (Input.GetButtonDown("Jump") && Grounded) // && No estar en fase de bateo
                    {
                        rb.AddForce(transform.up * jumpForce);
                        OnJump?.Invoke();
                    }
                }
                else
                {
                    MoveDir = 0f;
                }

                Grounded = (Physics2D.Raycast(transform.position, -transform.up, groundedRayHeight, groundedMask));
            }
        }
コード例 #4
0
 /// <summary>
 /// Es llamado cuando todas las bases espaciales son alcanzadas
 /// Muestra el panel de nivel completado
 /// </summary>
 private void LevelCompleted()
 {
     levelCompletedPanel.Init(numHits);
     OnLevelCompleted?.Invoke();
 }
コード例 #5
0
 /// <summary>
 /// Coge la bandera, informando a los suscritos
 /// </summary>
 public void TakeFlag()
 {
     OnFlagTaken?.Invoke();
     flagTaken = true;
 }