示例#1
0
        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;
            }
        }
示例#2
0
        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);
            }
        }