public void NewTargetPoint() { CGPoint projectedPosition = myPig.position; CGPoint projectedSpeed = myPig.GetActualSpeed(); for (int i = 0; i < 5; i++) { float speedRatio = Utilities.GetRatioP1P2(currentSpeed, 9.0f, 15.0f); float speedLagX = Utilities.SetRatioP1P2(speedRatio, 0.03f, 0.05f); float speedLagY = Utilities.SetRatioP1P2(speedRatio, 0.05f, 0.85f); projectedSpeed.x = projectedSpeed.x + ((desiredSpeed.x - projectedSpeed.x) * speedLagX); projectedSpeed.y = projectedSpeed.y + ((desiredSpeed.y - projectedSpeed.y) * speedLagY); projectedPosition.x += projectedSpeed.x; projectedPosition.y += projectedSpeed.y; } }
public void UpdatePlayerSpeed() { float speedRatio = Utilities.GetRatioP1P2(currentSpeed, 5.0f, 20.0f); float speedLagX = Utilities.SetRatioP1P2(speedRatio, 0.08f, 0.2f); float speedLagY = Utilities.SetRatioP1P2(speedRatio, 0.05f, 0.85f); if (differentAccelerationTimer > 0.0f) { speedLagX = 0.03f; speedLagY = differentAcceleration; differentAccelerationTimer -= Constants.kFrameRate; } CGPoint newSpeed; newSpeed.x = myPig.GetSpeed().x + ((desiredSpeed.x - myPig.GetSpeed().x) * speedLagX); float maxXSpeed = 10.0f; if (newSpeed.x > maxXSpeed) { newSpeed.x = maxXSpeed; } else if (newSpeed.x < -maxXSpeed) { newSpeed.x = -maxXSpeed; } newSpeed.y = myPig.GetSpeed().y + ((desiredSpeed.y - myPig.GetSpeed().y) * speedLagY); if (skidding) { myPig.SetSpeedFromRacingBrain(skidDirection); skidDirection.x += skidAcceleration.x; skidDirection.y += skidAcceleration.y; } else { myPig.SetSpeedFromRacingBrain(newSpeed); } }