Beispiel #1
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();
        }
    }
Beispiel #2
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);
        }
    }
    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();
        }
    }
Beispiel #4
0
    public void GeneratePlatform()
    {
        stickHeroPlatform = Instantiate(m_Platform);
        float value = Random.Range(0.5f, 1.5f);

        stickHeroPlatform.transform.position = new Vector3(
            m_Platforms[counter].transform.position.x
            + value, m_Platforms[counter].transform.position.y);
        float valueX = Random.Range(0.2f, 0.7f);

        stickHeroPlatform.transform.localScale = new Vector3(x: valueX, y: 1.0f, z: 1.0f);
        m_Platforms.Add(stickHeroPlatform);
    }