Ejemplo n.º 1
0
    public void StartPlayerMovement(float lenght)
    {
        currentGameState = EGameState.Movement;
        StickHeroPlatform nextPlatform = m_Platforms[counter + 1];
        //находим минимальную длину стика для успешного перехода
        float targetLenght = nextPlatform.transform.position.x - m_Stick.transform.position.x;
        float platformSize = nextPlatform.GetPlatformSize();
        float min          = targetLenght - platformSize * 0.5f;

        min -= m_Player.transform.localScale.x * 0.9f;

        //находим максимальную длину стика для успешного перехода
        float max = targetLenght + platformSize * 0.5f;

        //при успехе переходим в центр платформы, иначе падаем
        if (lenght < min || lenght > max)
        {
            float targetPosition = m_Stick.transform.position.x + lenght + m_Player.transform.localScale.x;
            m_Player.StartMovement(targetPosition, true);
        }
        else
        {
            float targetPosition = nextPlatform.transform.position.x;
            m_Player.StartMovement(targetPosition, false);
            GenerateBlock();
            ShowScore();
        }
    }
Ejemplo n.º 2
0
    public void StartPlayerMovement(float length)
    {
        currentGameState = EGameState.Movement;

        StickHeroPlatform nextPlatform = m_Platforms[counter + 1];

        // находим min длину стика
        float targetLength = nextPlatform.transform.position.x - m_Stick.transform.position.x;

        float platformSize = nextPlatform.GetPlatformSize();

        float min = targetLength - platformSize * 0.5f;

        min -= m_Player.transform.localScale.x * 0.9f;

        // находим мах длину стика
        float max = targetLength + platformSize * 0.5f;


        //при успехе переходим в центр следующей платформы
        if (length < min || length > max)
        {
            // будем падать
            float targetPosition = m_Stick.transform.position.x + length + m_Player.transform.localScale.x;

            m_Player.StartMovement(targetPosition, true);
        }
        else
        {
            float targetPosition = nextPlatform.transform.position.x;
            m_Player.StartMovement(targetPosition, false);
            SpawnNext();
        }
    }
Ejemplo n.º 3
0
    public void StartPlayerMovement(float length)
    {
        currentGameState = EGameState.Movement;
        StickHeroPlatform nextPlatform = m_Platforms[counter + 1];

        //находим минимальную длину стика для успешного перехода
        float targetLength = nextPlatform.transform.position.x -
                             m_Stick.transform.position.x;
        float platformSize = nextPlatform.GetPlatformSize();

        float min = targetLength - platformSize * 0.5f;

        min -= m_Player.transform.localScale.x;

        //находим максимальную длину стика
        float max = targetLength + platformSize * 0.5f;

        //при успехе игрок переходит в центр платформы, иначе падаем
        if (length > min && length < max)
        {
            m_Player.StartMovement(
                nextPlatform.transform.position.x, false);
        }
        else
        {
            float targetPos = m_Stick.transform.position.x +
                              length + m_Player.transform.localScale.x;

            m_Player.StartMovement(targetPos, true);
        }
    }