コード例 #1
0
 public RaceFinishedScreen(Race race, Track raceTrack)
     : base()
 {
     _race = race;
     _raceTrack = raceTrack;
     _background = ScreenEffects.TakeScreenshot();
     GC.Collect(); //force some memory freeness here.
 }
コード例 #2
0
ファイル: Race.cs プロジェクト: STPKITT/OpenNFS1
 public Race(int nbrLaps, Track track, PlayerDriver player)
 {
     _nbrLaps = nbrLaps;
     Player = player;
     Track = track;
     PlayerStats = new PlayerRaceStats();
     Drivers = new List<IDriver>();
     AddDriver(player);
     if (track.Description.IsOpenRoad)
     {
         _trafficController = new TrafficController(this);
     }
 }
コード例 #3
0
ファイル: DoRaceScreen.cs プロジェクト: STPKITT/OpenNFS1
        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);
        }
コード例 #4
0
ファイル: TrackAssembler.cs プロジェクト: STPKITT/OpenNFS1
        public Track Assemble(TriFile tri)
        {
            _tri = tri;
            AddProgress("Reading track scenery file");
            _trackFam = tri.IsOpenRoad ? new OpenRoadTrackfamFile(tri.FileName, GameConfig.AlternativeTimeOfDay) : new TrackfamFile(tri.FileName, GameConfig.AlternativeTimeOfDay);
            AssembleTrackSegments();

            Track track = new Track();
            track.RoadNodes = _tri.Nodes;
            track.SceneryItems = AssembleSceneryItems();
            track.TerrainSegments = _tri.Segments;
            track.TerrainVertexBuffer = AssembleTerrainVertices();
            track.FenceVertexBuffer = AssembleFenceVertices();
            track.TrackFam = _trackFam;
            track.IsOpenRoad = _tri.IsOpenRoad;

            // Find checkpoint scenery object and use it to mark the end of the track.
            // Or ignore it and mark the end of the track as the last node to allow us to drive past the checkpoint!
            if (tri.IsOpenRoad && GameConfig.RespectOpenRoadCheckpoints)
            {
                foreach (var obj in _tri.Scenery)
                {
                    if (obj.Descriptor.ResourceId == OPEN_ROAD_CHECKPOINT_SCENERYITEM_ID)
                    {
                        track.CheckpointNode = obj.ReferenceNode;
                        break;
                    }
                }
            }
            else
            {
                track.CheckpointNode = _tri.Nodes.Count - 2;
            }

            track.Initialize();
            return track;
        }
コード例 #5
0
ファイル: Vehicle.cs プロジェクト: STPKITT/OpenNFS1
 public void PlaceOnTrack(Track t, TrackNode startNode)
 {
     Track = t;
     CurrentNode = startNode;
     Position = Vector3.Lerp(startNode.GetLeftVerge(), startNode.GetRightVerge2(), 0.5f);  //center of node
 }