Exemple #1
0
    // Update is called once per frame
    void Update()
    {
        if (activePaddle == null)
        {
            return;                       //this script reference has no active paddle been set so don't do any computer control logic
        }
        timeSinceLastPrediction   += Time.deltaTime;
        timeSinceLastOffsetChange += Time.deltaTime;

        if (timeSinceLastOffsetChange > offsetChangeTimer)
        {
            SetNewOffset();
            timeSinceLastOffsetChange = 0f;
        }

        if (predictionConfidence == 0)
        {
            if (timeSinceLastPrediction > .1f)
            {
                DoPrediction();
            }
        }
        else if (predictionConfidence == 1)
        {
            if (timeSinceLastPrediction > .6f)
            {
                DoPrediction();
            }
        }
        else if (predictionConfidence == 2)
        {
            if (timeSinceLastPrediction > 1f)
            {
                DoPrediction();
            }
        }
        else if (predictionConfidence == 3)
        {
        }

        if (predictionInfo != null)
        {
            if (transform.position.y < predictedHitPoint.y - jitterFactor + randomOffset)
            {
                moveFactor = maxInput;
            }
            else if (transform.position.y > predictedHitPoint.y + jitterFactor + randomOffset)
            {
                moveFactor = -maxInput;
            }
            else if (transform.position.y > predictedHitPoint.y - jitterFactor + randomOffset && transform.position.y < predictedHitPoint.y + jitterFactor + randomOffset)
            {
                moveFactor = 0f;
            }
        }
        else //we have no predicted point so we move to y = 0, this should never trigger anymore because we never clearing predictionInfo
        {
            if (transform.position.y < -jitterFactor)
            {
                moveFactor = maxInput;
            }
            else if (transform.position.y > jitterFactor)
            {
                moveFactor = -maxInput;
            }
            else if (transform.position.y > -jitterFactor && transform.position.y < jitterFactor)
            {
                moveFactor = 0f;
            }
        }

        //Debug.Log("movement factor: " + movementFactor);
        activePaddle.MoveVertical(moveFactor);
    }
Exemple #2
0
    // Update is called once per frame
    void Update()
    {
        if (activePaddle != null)
        {
            if (doOnce)
            {
                LoadKeyboardSettings();
                doOnce = false;
            }
            //activePaddle.MoveVertical(Input.GetAxis("Vertical"));
            //activePaddle.MoveHorizontal(Input.GetAxis("Horizontal"));

            if (Input.GetKeyDown(up))
            {
                movingUp  = true;
                moveSpeed = Vector2.zero;
            }
            if (Input.GetKeyUp(up))
            {
                movingUp = false;
            }
            if (Input.GetKeyDown(down))
            {
                movingDown = true;
                moveSpeed  = Vector2.zero;
            }
            if (Input.GetKeyUp(down))
            {
                movingDown = false;
            }
            if (Input.GetKeyDown(left))
            {
                movingLeft = true;
                moveSpeed  = Vector2.zero;
            }
            if (Input.GetKeyUp(left))
            {
                movingLeft = false;
            }
            if (Input.GetKeyDown(right))
            {
                movingRight = true;
                moveSpeed   = Vector2.zero;
            }
            if (Input.GetKeyUp(right))
            {
                movingRight = false;
            }

            if (movingUp)
            {
                if (moveSpeed.y < maxMovespeed)
                {
                    moveSpeed.y += accelerationRate;
                }
            }
            else
            {
                if (moveSpeed.y > 0)
                {
                    moveSpeed.y -= decelerationRate;
                }
            }

            if (movingDown)
            {
                if (moveSpeed.y > -maxMovespeed)
                {
                    moveSpeed.y -= accelerationRate;
                }
            }
            else
            {
                if (moveSpeed.y < 0)
                {
                    moveSpeed.y += decelerationRate;
                }
            }


            activePaddle.MoveVertical(moveSpeed.y);
            //activePaddle.MoveHorizontal(Input.GetAxis("Horizontal"));
        }
    }