Пример #1
0
    void FixedUpdate()
    {
        if (Input.GetKey(KeyCode.Q))
        {
            RPMLeft += aceleracion * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.A))
        {
            RPMLeft -= aceleracion * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.E))
        {
            RPMRight += aceleracion * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.D))
        {
            RPMRight -= aceleracion * Time.deltaTime;
        }

        RPMLeft  = Mathf.Clamp(RPMLeft, maxRPM * -1, maxRPM);
        RPMRight = Mathf.Clamp(RPMRight, maxRPM * -1, maxRPM);

        var angVelLeft = MugettiPhysics.AngularVelocity(RPMLeft);
        var velLeft    = MugettiPhysics.AngularToLinearVelocity(angVelLeft, radioRuedas);

        var angVelRight = MugettiPhysics.AngularVelocity(RPMRight);
        var velRight    = MugettiPhysics.AngularToLinearVelocity(angVelRight, radioRuedas);


        MugettiPhysics.MVec2 vecZero;
        vecZero.X = 0.0f;
        vecZero.Y = 0.0f;

        MugettiPhysics.MVec2 leftSpeeds;
        leftSpeeds.X = Mathf.Cos(45 * Mathf.Deg2Rad) * velLeft;
        leftSpeeds.Y = Mathf.Sin(45 * Mathf.Deg2Rad) * velLeft;
        MugettiPhysics.MVec2 leftMovementVector = MugettiPhysics.MRU(0, Time.deltaTime, vecZero, leftSpeeds);
        if (leftMovementVector.X > 0.0f)
        {
            leftMovementVector.X *= -1.0f;
        }

        MugettiPhysics.MVec2 rightSpeeds;
        rightSpeeds.X = Mathf.Cos(45 * Mathf.Deg2Rad) * velRight;
        rightSpeeds.Y = Mathf.Sin(45 * Mathf.Deg2Rad) * velRight;
        MugettiPhysics.MVec2 rightMovementVector = MugettiPhysics.MRU(0, Time.deltaTime, vecZero, rightSpeeds);
        if (rightMovementVector.X < 0.0f)
        {
            rightMovementVector.X *= -1.0f;
        }

        Vector3 newPos = transform.position;

        newPos.x += leftMovementVector.X + rightMovementVector.X;
        newPos.y += leftMovementVector.Y + rightMovementVector.Y;
        Debug.Log("X: " + leftMovementVector.X + " " + rightMovementVector.X);
        Debug.Log("Y: " + leftMovementVector.Y + " " + rightMovementVector.Y);
        transform.position = newPos;
    }
Пример #2
0
    void FixedUpdate()
    {
        MugettiPhysics.MVec2 speeds;
        speeds.X = 0;
        speeds.Y = speed * -1;
        MugettiPhysics.MVec2 vecZero;
        vecZero.X = 0;
        vecZero.Y = 0;

        MugettiPhysics.MVec2 movement = MugettiPhysics.MRU(0, Time.deltaTime, vecZero, speeds);
        Vector3 newPos = transform.position;

        newPos.y          += movement.Y;
        transform.position = newPos;
    }
Пример #3
0
 void Update()
 {
     if (active)
     {
         if (transform.position.y <= 0)
         {
             Deactivate();
             return;
         }
         MugettiPhysics.MVec2 initPos;
         initPos.X = initialPosition.x;
         initPos.Y = initialPosition.y;
         MugettiPhysics.MVec2 initSpds;
         initSpds.X = initialSpeeds.x;
         initSpds.Y = initialSpeeds.y;
         MugettiPhysics.MVec2 newPos = MugettiPhysics.TiroOblicuo(initialtime, Time.time, initPos, initSpds);
         Vector3 newPosition         = transform.position;
         newPosition.x      = newPos.X;
         newPosition.y      = newPos.Y;
         transform.position = newPosition;
         Trail(newPosition);
     }
 }