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; }
// Update is called once per frame void LateUpdate() { foreach (MCollider col1 in layer1) { MugettiPhysics.MVec2 col1Pos; col1Pos.X = col1.GetTransform().position.x; col1Pos.Y = col1.GetTransform().position.y; foreach (MCollider col2 in layer2) { bool collided = false; MugettiPhysics.MVec2 col2Pos; col2Pos.X = col2.GetTransform().position.x; col2Pos.Y = col2.GetTransform().position.y; if (col1.GetColType()) { MugettiPhysics.MVec2 col1Size; col1Size.X = col1.GetWidth(); col1Size.Y = col1.GetHeightOrRadius(); if (col2.GetColType()) { MugettiPhysics.MVec2 col2Size; col2Size.X = col2.GetWidth(); col2Size.Y = col2.GetHeightOrRadius(); collided = MugettiPhysics.CheckBoxCollision(col1Pos, col1Size, col2Pos, col2Size); //Debug.Log("A"); } else { collided = MugettiPhysics.CheckBoxCircleCollision(col1Pos, col1Size, col2Pos, col2.GetHeightOrRadius()); //Debug.Log("B"); } } else { if (col2.GetColType()) { MugettiPhysics.MVec2 col2Size; col2Size.X = col2.GetWidth(); col2Size.Y = col2.GetHeightOrRadius(); collided = MugettiPhysics.CheckBoxCircleCollision(col2Pos, col2Size, col1Pos, col1.GetHeightOrRadius()); //Debug.Log("C"); } else { collided = MugettiPhysics.CheckCircleCollision(col1Pos, col1.GetHeightOrRadius(), col2Pos, col2.GetHeightOrRadius()); // Debug.Log("D"); } } if (collided) { col1.OnColEnter.Invoke(); col2.OnColEnter.Invoke(); } } } }
void Start() { active = false; initialtime = 0; trailCounter = 0; initialPosition = Vector3.zero; initialSpeeds = Vector2.zero; MugettiPhysics.StateGravity(gravity); GetComponent <Collider>().OnColEnter.AddListener(Deactivate); }
// Update is called once per frame void Update() { if ((IsLeft && GM.IsLeftTurn()) || (!IsLeft && !GM.IsLeftTurn())) { MugettiPhysics.MVec2 pos; MugettiPhysics.MVec2 speeds; pos.X = transform.position.x; pos.Y = transform.position.y; speeds.X = vel * Input.GetAxisRaw("Horizontal"); speeds.Y = 0; var movement = MugettiPhysics.MRU(0, Time.deltaTime, pos, speeds); Vector3 newPos = new Vector3(movement.X, movement.Y, transform.position.z); transform.position = newPos; } }
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; }
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); } }