Пример #1
0
        public Dashboard(DrivableVehicle car, DashboardDescription descriptor)
        {
            _car        = car;
            _descriptor = descriptor;
            _car.Motor.Gearbox.GearChangeStarted += new EventHandler(Gearbox_GearChangeStarted);

            _gearBoxAnimation = new GearboxAnimation();

            //_instrumentLine = Engine.Instance.ContentManager.Load<Texture2D>("Content\\SpeedoLine");
            if (_tachLineTexture == null)
            {
                _tachLineTexture = new Texture2D(Engine.Instance.Device, (int)3, 25);
                Color[] pixels = new Color[_tachLineTexture.Width * _tachLineTexture.Height];
                for (int i = 0; i < pixels.Length; i++)
                {
                    pixels[i] = Color.Red;
                }
                _tachLineTexture.SetData <Color>(pixels);
            }

            FshFile fsh     = new FshFile(Path.Combine(@"SIMDATA\DASH", descriptor.Filename));
            var     bitmaps = fsh.Header;

            Dash     = bitmaps.FindByName("dash");
            GearGate = bitmaps.FindByName("gate");
            GearKnob = bitmaps.FindByName("nob1");

            Leather1 = bitmaps.FindByName("lth1");
            Leather2 = bitmaps.FindByName("lth2");
            Leather3 = bitmaps.FindByName("lth3");

            //steering wheel images, from straight to left, then to the right.  Not all cars have all steering angles
            Wstr = bitmaps.FindByName("wstr");
            Wl06 = bitmaps.FindByName("wl06");
            Wl14 = bitmaps.FindByName("wl14");
            Wl22 = bitmaps.FindByName("wl22");
            Wl32 = bitmaps.FindByName("wl32");
            if (Wl32 == null)
            {
                Wl32 = Wl22;
            }
            Wl45 = bitmaps.FindByName("wl45");
            if (Wl45 == null)
            {
                Wl45 = Wl32;
            }
            Wr06 = bitmaps.FindByName("wr06");
            Wr14 = bitmaps.FindByName("wr14");
            Wr22 = bitmaps.FindByName("wr22");
            Wr32 = bitmaps.FindByName("wr32");
            if (Wr32 == null)
            {
                Wr32 = Wr22;
            }
            Wr45 = bitmaps.FindByName("wr45");
            if (Wr45 == null)
            {
                Wr45 = Wr32;
            }
        }
Пример #2
0
 public BumperView(DrivableVehicle car)
 {
     _car                     = car;
     _camera                  = new SimpleCamera();
     _camera.FieldOfView      = GameConfig.FOV;
     _camera.FarPlaneDistance = GameConfig.DrawDistance;
 }
Пример #3
0
        public void RenderBackground(DrivableVehicle car)
        {
            float carRpm = car.Motor.Rpm / car.Motor.RedlineRpm;

            Engine.Instance.SpriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.NonPremultiplied, SamplerState.LinearWrap, DepthStencilState.None, RasterizerState.CullNone);

            // Draw tacho
            Color color = new Color(255, 255, 255, 200);

            Engine.Instance.SpriteBatch.Draw(_tacho.Texture, new Rectangle(_tacho.Misc[2], _tacho.Misc[3], _size, _size), Color.White);

            float rotation = (float)(carRpm * Math.PI * 1.4f) - 2.56f;

            Engine.Instance.SpriteBatch.Draw(_tachLineTexture, new Vector2(_tacho.Misc[2] + _size / 2, _tacho.Misc[3] + _size / 2), null, color, rotation, new Vector2(_needleWidth / 2, 25), new Vector2(1f, _needleLength), SpriteEffects.None, 0);

            // mini-map overlay
            //Engine.Instance.SpriteBatch.Draw(_map.Texture, _map.GetDisplayAt(), Color.White);

            // Draw bottom fill
            const int barHeight = 17;

            Engine.Instance.SpriteBatch.Draw(_bottomBar.Texture, new Vector2(0, 400), new Rectangle(0, 0, 640, barHeight), Color.White);
            Engine.Instance.SpriteBatch.Draw(_bottomFill.Texture, new Vector2(0, 400 + barHeight), new Rectangle(0, 0, 640, 60), Color.White);

            Engine.Instance.SpriteBatch.End();
        }
Пример #4
0
 public DropCameraView(DrivableVehicle car)
 {
     _car                     = car;
     _camera                  = new SimpleCamera();
     _camera.FieldOfView      = GameConfig.FOV;
     _camera.FarPlaneDistance = GameConfig.DrawDistance;
     PositionCameraAtNode(car.Track.RoadNodes[10]);
 }
Пример #5
0
 public RacingAIDriver(VehicleDescription vehicleDescriptor)
 {
     _vehicle = new DrivableVehicle(vehicleDescriptor);
     _vehicle.SteeringSpeed = 6;
     _vehicle.AutoDrift     = false;
     Vehicle = _vehicle;
     _firstLaneChangeAllowed = Engine.Instance.Random.Next(5, 40);
 }
Пример #6
0
 public ChaseView(DrivableVehicle car, int distance, int height, int offset)
 {
     _car                     = car;
     _camera                  = new FixedChaseCamera();
     _camera.FieldOfView      = GameConfig.FOV;
     _camera.FarPlaneDistance = GameConfig.DrawDistance;
     _camera.ChaseDistance    = distance;
     _camera.ChaseHeight      = height;
     _camera.ChaseOffset      = offset;
 }
Пример #7
0
        public PlayerUI(DrivableVehicle vehicle)
        {
            _vehicle = vehicle;

            _views.Add(new DebugView(_vehicle));
            _views.Add(new ChaseView(_vehicle, 32, 14, 0));
            _views.Add(new DashboardView(_vehicle));
            _views.Add(new BumperView(_vehicle));
            _views.Add(new DropCameraView(_vehicle));
            _views[_currentView].Activate();
        }
Пример #8
0
        public DashboardView(DrivableVehicle car)
        {
            _car                     = car;
            _camera                  = new SimpleCamera();
            _camera.FieldOfView      = GameConfig.FOV;
            _camera.FarPlaneDistance = GameConfig.DrawDistance;

            var dashfile        = Path.GetFileNameWithoutExtension(car.Descriptor.ModelFile) + "dh.fsh";
            var dashDescription = DashboardDescription.Descriptions.Find(a => a.Filename == dashfile);

            _dashboard = new Dashboard(car, dashDescription);
        }
Пример #9
0
        public DoRaceScreen(Track track)
        {
            _track = track;
            _car   = new DrivableVehicle(GameConfig.SelectedVehicle);

            _playerDriver     = new PlayerDriver(_car);
            _car.AudioEnabled = true;

            _race = new Race(_track.IsOpenRoad ? 1 : 3, _track, _playerDriver);
            for (int i = 0; i < 10; i++)
            {
                int j = Engine.Instance.Random.Next(VehicleDescription.Descriptions.Count);
                _race.AddDriver(new RacingAIDriver(VehicleDescription.Descriptions[j]));
            }
            //_race.AddDriver(new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper")));
            //_race.AddDriver(new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper")));
            //_race.AddDriver(new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper")));
            //_race.AddDriver(new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper")));
            _playerUI = new PlayerUI(_car);

            /*
             * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "911"));
             * _aiDrivers.Add(d);
             * _track.AddDriver(d);
             * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper"));
             * _aiDrivers.Add(d);
             * _track.AddDriver(d);
             * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Diablo"));
             * _aiDrivers.Add(d);
             * _track.AddDriver(d);
             * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "F512"));
             * _aiDrivers.Add(d);
             * _track.AddDriver(d);
             * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "ZR1"));
             * _aiDrivers.Add(d);
             * _track.AddDriver(d);
             * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "NSX"));
             * _aiDrivers.Add(d);
             * _track.AddDriver(d);
             */

            _raceUI = new RaceUI(_race);
            _race.StartCountdown();

            _raceViewport = new Viewport(0, 0, 640, 400);
            _uiViewport   = new Viewport(0, 0, 640, 480);
        }
Пример #10
0
 public VehicleAudioProvider2(DrivableVehicle car)
 {
     _car = car;
 }
Пример #11
0
 public PlayerDriver(DrivableVehicle vehicle)
 {
     _vehicle = vehicle;
 }
Пример #12
0
 public DebugView(DrivableVehicle car)
 {
     _car    = car;
     _camera = new FPSCamera();
 }