// Methods public Player(World world_, Texture2D cowTexture_, Texture2D texture_, Texture2D ButtonTexture, Vector2 ButtonPosition, float ButtonRotation, EntityStruct entityStruct_, float speed_, Quadrent quadrent_, int id_ = 999) { // Player constructor // ================ m_vehicle = new Vehicle(world_, texture_, entityStruct_); m_cow = new Sprite(cowTexture_, entityStruct_.GetPosition(), entityStruct_.GetRotationDegrees(), new Vector2(0.1f, 0.1f)); m_ReadyButton = new Button(ButtonTexture, ButtonPosition); m_ReadyButton.m_sprite.SetRotationDegrees(ButtonRotation); m_controlScheme = new ControlScheme(quadrent_); m_playerID = id_; m_currentCheckpoint = Checkpoint.First(Vector2.Zero); m_currentLap = 1; m_finished = false; m_ReadyUp = false; }
private SoundEffectInstance go, carbrake; // ADDED // Methods public Vehicle(World world_, Texture2D texture_, EntityStruct entityStruct_) { // Vehicle constructor // ================ // Initialise the vehicle's main body m_vehicleBody = new Entity(world_, texture_, entityStruct_.GetPosition(), 0, BodyType.Dynamic, 10, 0.1f); m_vehicleBody.GetBody().AngularDamping = 1; m_vehicleBody.GetBody().LinearDamping = 1; // Initialise the vehicle's wheels Vector2 frontLeftPosition = FarseerPhysics.ConvertUnits.ToDisplayUnits(m_vehicleBody.GetPosition()) + new Vector2(-m_vehicleBody.GetSprite().GetWidth() / 2, -m_vehicleBody.GetSprite().GetHeight() / 2); m_vehicleTyres.Add(new Tyre(System.Input.Quadrent.TOP_LEFT, world_, frontLeftPosition, m_vehicleBody.GetRotationDegrees())); Vector2 frontRightPosition = FarseerPhysics.ConvertUnits.ToDisplayUnits(m_vehicleBody.GetPosition()) + new Vector2(m_vehicleBody.GetSprite().GetWidth() / 2, -m_vehicleBody.GetSprite().GetHeight() / 2); m_vehicleTyres.Add(new Tyre(System.Input.Quadrent.TOP_RIGHT, world_, frontRightPosition, m_vehicleBody.GetRotationDegrees())); Vector2 backLeftPosition = FarseerPhysics.ConvertUnits.ToDisplayUnits(m_vehicleBody.GetPosition()) + new Vector2(-m_vehicleBody.GetSprite().GetWidth() / 2, m_vehicleBody.GetSprite().GetHeight() / 2); m_vehicleTyres.Add(new Tyre(System.Input.Quadrent.BOTTOM_LEFT, world_, backLeftPosition, m_vehicleBody.GetRotationDegrees())); Vector2 backRightPosition = FarseerPhysics.ConvertUnits.ToDisplayUnits(m_vehicleBody.GetPosition()) - new Vector2(m_vehicleBody.GetSprite().GetWidth() / 2, m_vehicleBody.GetSprite().GetHeight() / 2); m_vehicleTyres.Add(new Tyre(System.Input.Quadrent.BOTTOM_RIGHT, world_, backRightPosition, m_vehicleBody.GetRotationDegrees())); // Create joints for each of the wheels to the body // Front Left m_frontLeftJoint = JointFactory.CreateRevoluteJoint(world_, m_vehicleBody.GetBody(), m_vehicleTyres[0].GetBody(), FarseerPhysics.ConvertUnits.ToSimUnits(new Vector2(-m_vehicleBody.GetSprite().GetWidth() / 2 * 0.8f, -m_vehicleBody.GetSprite().GetHeight() / 2 * 0.7f)), Vector2.Zero, false); m_frontLeftJoint.LowerLimit = Util.DegreesToRadians(-10); m_frontLeftJoint.UpperLimit = Util.DegreesToRadians(10); m_frontLeftJoint.LimitEnabled = true; m_frontLeftJoint.MotorEnabled = true; m_frontLeftJoint.MaxMotorTorque = 100; // Front right m_frontRightJoint = JointFactory.CreateRevoluteJoint(world_, m_vehicleBody.GetBody(), m_vehicleTyres[1].GetBody(), FarseerPhysics.ConvertUnits.ToSimUnits(new Vector2(m_vehicleBody.GetSprite().GetWidth() / 2 * 0.8f, -m_vehicleBody.GetSprite().GetHeight() / 2 * 0.7f)), Vector2.Zero, false); m_frontRightJoint.LowerLimit = Util.DegreesToRadians(-10); m_frontRightJoint.UpperLimit = Util.DegreesToRadians(10); m_frontRightJoint.LimitEnabled = true; m_frontRightJoint.MotorEnabled = true; m_frontRightJoint.MaxMotorTorque = 100; // Back left m_backLeftJoint = JointFactory.CreateRevoluteJoint(world_, m_vehicleBody.GetBody(), m_vehicleTyres[2].GetBody(), FarseerPhysics.ConvertUnits.ToSimUnits(new Vector2(-m_vehicleBody.GetSprite().GetWidth() / 2 * 0.8f, m_vehicleBody.GetSprite().GetHeight() / 2 * 0.7f)), Vector2.Zero, false); m_backLeftJoint.LowerLimit = 0; m_backLeftJoint.UpperLimit = 0; m_backLeftJoint.LimitEnabled = true; // Back right m_backRightJoint = JointFactory.CreateRevoluteJoint(world_, m_vehicleBody.GetBody(), m_vehicleTyres[3].GetBody(), FarseerPhysics.ConvertUnits.ToSimUnits(new Vector2(m_vehicleBody.GetSprite().GetWidth() / 2 * 0.8f, m_vehicleBody.GetSprite().GetHeight() / 2 * 0.7f)), Vector2.Zero, false); m_backLeftJoint.LowerLimit = 0; m_backLeftJoint.UpperLimit = 0; m_backRightJoint.LimitEnabled = true; m_vehicleBody.SetRotationDegrees(entityStruct_.GetRotationDegrees()); m_vehicleBody.UpdateSprites(); // AUDIO //TouchPanel.EnableMouseTouchPoint = true;//ADDED go = AudioHandler.vehicleEngine.CreateInstance(); //ADDED carbrake = AudioHandler.vehicleBrake.CreateInstance(); //ADDED }