/// <summary> /// Loads graphics content for this screen. The background texture is quite /// big, so we use our own local ContentManager to load it. This allows us /// to unload before going from the menus into the game itself, wheras if we /// used the shared ContentManager provided by the Game class, the content /// would remain loaded forever. /// </summary> public override void LoadContent() { if (content == null) content = new ContentManager(ScreenManager.Game.Services, "Psuedo3DRacer.Content"); LoadTex("arrow"); LoadTex("blank"); LoadTex("blank-track"); LoadTex("banner-bottom"); LoadTex("banner-top"); LoadTex("car-spot"); LoadTex("colors"); LoadTex("paintcar"); LoadTex("selectcup"); LoadTex("triangles"); LoadTex("cup-holder"); LoadTex("cuparrow"); LoadTex("cup"); for (int i = 1; i <= 3; i++) { LoadTex("cuptitle" + i.ToString()); } texCarDirections = new Texture2D[8]; for (int dir = 0; dir < 8; dir++) { texCarDirections[dir] = content.Load<Texture2D>("cars/0-" + dir + "-0"); } Parallax = new ParallaxManager(ScreenManager.Viewport); Camera = new Camera(ScreenManager.GraphicsDevice, ScreenManager.Viewport); Track = Track.Load("track000", content, Parallax, false); drawEffect = new BasicEffect(ScreenManager.GraphicsDevice) { World = Camera.worldMatrix, View = Camera.viewMatrix, Projection = Camera.projectionMatrix, TextureEnabled = true }; drawAlphaEffect = new AlphaTestEffect(ScreenManager.GraphicsDevice) { World = Camera.worldMatrix, View = Camera.viewMatrix, Projection = Camera.projectionMatrix, ReferenceAlpha = 254, AlphaFunction = CompareFunction.Greater }; // Initial positions bannerTop1Pos = new Vector2(150, -230); bannerTop2Pos = new Vector2(400, -230); CarPos = new Vector2(ScreenManager.Viewport.Width / 2, -250f); SpotPos = new Vector2(ScreenManager.Viewport.Width / 2, ScreenManager.Viewport.Height + 500f); PaintPos = new Vector2(ScreenManager.Viewport.Width / 2, ScreenManager.Viewport.Height + 500f); Cups.Add(new Cup()); Cups.Add(new Cup()); Cups.Add(new Cup()); //Cups.Add(new Cup()); //Cups.Add(new Cup()); cupPosition = new Vector2(ScreenManager.Viewport.Width + 500, ScreenManager.Viewport.Height / 2); for (int i = selectedCup - 2; i <= selectedCup + 2; i++) { if (i >= 0 && i < Cups.Count) { Cups[i].Position = cupPosition + new Vector2(i * 150, 0); Cups[i].Scale = 1f - (Math.Abs(i) * 0.25f); } } cupTrackRT[0] = new RenderTarget2D(ScreenManager.GraphicsDevice, 193, 108, false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8); cupTrackRT[1] = new RenderTarget2D(ScreenManager.GraphicsDevice, 193, 108, false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8); cupTrackRT[2] = new RenderTarget2D(ScreenManager.GraphicsDevice, 193, 108, false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8); trophyPos = new Vector2(- 400, (ScreenManager.Viewport.Height / 2) + 50); leftRect = new Rectangle(0, ScreenManager.Viewport.Height - 75, 150, 50); rightRect = new Rectangle(ScreenManager.Viewport.Width-150, ScreenManager.Viewport.Height - 75, 150, 50); leftCupRect = new Rectangle((int)cupPosition.X - 300, (int)cupPosition.Y - 100, 50, 200); rightCupRect = new Rectangle((int)cupPosition.X + 250, (int)cupPosition.Y - 100, 50, 200); LoadTracks(selectedCup); AudioController.PlayMusic("title"); ScreenManager.Game.ResetElapsedTime(); }
void LoadTracks(int cup) { for (int i = 0; i < 3; i++) { cupTrackPM[i] = new ParallaxManager(new Viewport(cupTrackRT[i].Bounds)); //cupTrackPM[i].Scale = 108f / 720f; //cupTracks[i] = Track.Load("track" + i.ToString("000"), content, cupTrackPM[i], true); cupTracks[i] = Track.Load("track" + ((selectedCup * 3) + i).ToString("000"), content, cupTrackPM[i], true); trackPos[i] = cupTracks[i].Length - 50; } ScreenManager.Game.ResetElapsedTime(); }
public static Track Load(string filename, ContentManager content, ParallaxManager pMan, bool async) { Track returnTrack = null; string trackXML = content.Load<string>("tracks/" + filename); XmlSerializer xmls = new XmlSerializer(typeof(Track)); using (StringReader stream = new StringReader(trackXML)) { returnTrack = (Track)xmls.Deserialize(stream); } returnTrack.LoadContent(content); returnTrack.LoadHorizon(content, pMan); returnTrack.HasLoaded = false; if (async) { #if !WINRT returnTrack.bgW.DoWork += returnTrack.AsyncLoad; returnTrack.bgW.RunWorkerAsync(); #else ThreadPool.RunAsync(async delegate { returnTrack.AsyncLoad(); }); #endif } else { foreach (string s in returnTrack.PackedSegments) { Segment seg = Segment.FromString(s); returnTrack.TrackSegments.Add(seg); } returnTrack.PrepareBatches(); returnTrack.HasLoaded = true; } return returnTrack; }
public void LoadHorizon(ContentManager content, ParallaxManager parallaxManager) { parallaxManager.Layers.Clear(); switch (Horizon) { case Horizon.CityDay: parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/ground"), new Vector2(0,50f), 1f, false, false)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/sky"), new Vector2(0, -100f), 1f, false, false)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/mountains"), new Vector2(0f, -40f), 1f, false, false)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/clouds1"), new Vector2(-1280f, -290f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/clouds2"), new Vector2(2560f, -200f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/clouds2"), new Vector2(-2560f, -200f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/clouds3"), new Vector2(0f, -250f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/city"), new Vector2(200f, -80f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/city"), new Vector2(520f, -80f), 1f, false, true)); GroundColor = Color.Green; SkyColor = Color.CornflowerBlue; break; case Horizon.CityNight: parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/citynight/ground"), new Vector2(0, 25f), 1f, false, false)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/citynight/mountains"), new Vector2(0f, -40f), 1f, false, false)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/citynight/stars2"), new Vector2(0f, -250f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/citynight/stars"), new Vector2(1280f, -250f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/citynight/stars2"), new Vector2(2560f, -250f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/citynight/stars"), new Vector2(-1280f, -250f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/citynight/stars2"), new Vector2(-2560f, -250f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/citynight/city"), new Vector2(0f, -40f), 1f, false, true)); GroundColor = new Color(10,10,50); SkyColor = new Color(10,10,20); break; case Horizon.Island: parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/island/sky"), new Vector2(0f, -150f), 1f, false, false)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/clouds1"), new Vector2(-1280f, -290f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/clouds2"), new Vector2(2560f, -200f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/clouds2"), new Vector2(-2560f, -200f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/cityday/clouds3"), new Vector2(0f, -250f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/island/boat"), new Vector2(0f, -85f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/island/beach"), new Vector2(0f, 0f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/island/beach"), new Vector2(1280f, 0f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/island/beach"), new Vector2(2560f, 0f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/island/beach"), new Vector2(-1280f, 0f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/island/beach"), new Vector2(-2560f, 0f), 1f, false, true)); GroundColor = new Color(183, 159, 0); SkyColor = new Color(0, 175, 219); break; case Horizon.Urban: parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/urban/sky"), new Vector2(0, -100f), 1f, false, false)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/urban/clouds1"), new Vector2(-1280f, -290f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/urban/clouds2"), new Vector2(2560f, -200f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/urban/clouds2"), new Vector2(-2560f, -200f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/urban/clouds3"), new Vector2(0f, -250f), 1f, false, true)); parallaxManager.Layers.Add(new ParallaxLayer(content.Load<Texture2D>("horizons/urban/city"), new Vector2(0f, -80f), 1f, false, false)); GroundColor = Color.Gray; SkyColor = Color.CornflowerBlue; break; } }
/// <summary> /// Load graphics content for the game. /// </summary> public override void LoadContent() { //if (content == null) // content = new ContentManager(ScreenManager.Game.Services, "Psuedo3DRacer.Content"); //AudioController.LoadContent(content); parallaxManager = new ParallaxManager(ScreenManager.Viewport); gameHud = new HUD(ScreenManager.Viewport); gameHud.LoadContent(ScreenManager.Game.Content); gameCamera = new Camera(ScreenManager.GraphicsDevice, ScreenManager.Viewport); gameCamera.AttachedToCar = true; gameTrack = Track.Load("track" + ((Cup * 3) + currentTrack).ToString("000"), ScreenManager.Game.Content, parallaxManager, false); gameFont = ScreenManager.Game.Content.Load<SpriteFont>("font"); texBlank = ScreenManager.Game.Content.Load<Texture2D>("blank"); if (gameCars.Count == 0) { gameCars.Add(new Car(gameTrack.Length - 10, -0.2f, gameTrack, Color.Red)); gameCars.Add(new Car(gameTrack.Length - 20, 0.2f, gameTrack, Color.Blue)); gameCars.Add(new Car(gameTrack.Length - 30, -0.2f, gameTrack, Color.Green)); gameCars.Add(new Car(gameTrack.Length - 40, 0.2f, gameTrack, Color.Gold)); gameCars.Add(new Car(gameTrack.Length - 50, -0.2f, gameTrack, Color.Pink)); gameCars.Add(new Car(gameTrack.Length - 60, 0.2f, gameTrack, Color.Purple)); gameCars.Add(new Car(gameTrack.Length - 70, -0.2f, gameTrack, Color.Orange)); gameCars.Add(new Car(gameTrack.Length - 80, 0.2f, gameTrack, playerColor)); // Select "awesome" driver int sel = Psuedo3DRacer.rand.Next(7); gameCars[sel].SpeedWhenTurning = 0.051f + (0.002f * Cup); gameCars[sel].ConcentrationLevel = 1500 + (200 * Cup); gameCars[sel].CorrectionTime = 900 - (200 * Cup); gameCars[sel].ReactionTime = 100; // and "bad" driver int sel2 = sel; while (sel2 == sel) { sel2 = Psuedo3DRacer.rand.Next(7); } gameCars[sel2].SpeedWhenTurning = 0.04f + (0.001f * Cup); gameCars[sel2].ConcentrationLevel = 50 + (200 * Cup); gameCars[sel2].CorrectionTime = 5000 - (200 * Cup); gameCars[sel2].ReactionTime = 2000 - (100 * Cup); } else { gameCars[0].Reset(gameTrack.Length - 10, -0.2f, gameTrack); gameCars[1].Reset(gameTrack.Length - 20, 0.2f, gameTrack); gameCars[2].Reset(gameTrack.Length - 30, -0.2f, gameTrack); gameCars[3].Reset(gameTrack.Length - 40, 0.2f, gameTrack); gameCars[4].Reset(gameTrack.Length - 50, -0.2f, gameTrack); gameCars[5].Reset(gameTrack.Length - 60, 0.2f, gameTrack); gameCars[6].Reset(gameTrack.Length - 70, -0.2f, gameTrack); gameCars[7].Reset(gameTrack.Length - 80, 0.2f, gameTrack); } gameCars[7].IsPlayerControlled = true; gameCars[7].camAttached = true; foreach (Car c in gameCars) { c.LoadContent(ScreenManager.Game.Content, 0); c.engineSound.Volume = 0.75f * AudioController.sfxvolume; c.Update(new GameTime(), gameTrack, gameCars); } foreach (Car c in gameCars) c.Update(new GameTime(), gameTrack, gameCars); drawEffect = new BasicEffect(ScreenManager.GraphicsDevice) { World = gameCamera.worldMatrix, View = gameCamera.viewMatrix, Projection = gameCamera.projectionMatrix, TextureEnabled = true }; drawAlphaEffect = new AlphaTestEffect(ScreenManager.GraphicsDevice) { World = gameCamera.worldMatrix, View = gameCamera.viewMatrix, Projection = gameCamera.projectionMatrix, ReferenceAlpha = 254, AlphaFunction = CompareFunction.Greater }; ScreenManager.Game.ResetElapsedTime(); trackFade = 0f; fadeTime = 0; startDelay = 6000; finishDelay = 3000; for (int i = 0; i < 8; i++) finishingPositions[i] = -1; mapRenderTarget = new RenderTarget2D(ScreenManager.GraphicsDevice, 300, 300, false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8); RenderMap(); steeringAmount = 0f; standingsShown = false; }
public override void LoadContent() { if (content == null) content = new ContentManager(ScreenManager.Game.Services, "Psuedo3DRacer.Content"); texLogo = content.Load<Texture2D>("title"); texBlank = content.Load<Texture2D>("blank"); gameFont = content.Load<SpriteFont>("font"); parallaxManager = new ParallaxManager(ScreenManager.Viewport); gameCamera = new Camera(ScreenManager.GraphicsDevice, ScreenManager.Viewport); gameCamera.AttachedToCar = true; // + ((Cup * 3) + currentTrack).ToString("000") gameTrack = Track.Load("track" + (rand.Next(9)).ToString("000"), content, parallaxManager, false); gameCars.Add(new Car(gameTrack.Length - 10, -0.2f, gameTrack, Color.Red)); gameCars.Add(new Car(gameTrack.Length - 20, 0.2f, gameTrack, Color.Blue)); gameCars.Add(new Car(gameTrack.Length - 30, -0.2f, gameTrack, Color.Green)); gameCars.Add(new Car(gameTrack.Length - 40, 0.2f, gameTrack, Color.Gold)); gameCars.Add(new Car(gameTrack.Length - 50, -0.2f, gameTrack, Color.Pink)); gameCars.Add(new Car(gameTrack.Length - 60, 0.2f, gameTrack, Color.Purple)); gameCars.Add(new Car(gameTrack.Length - 70, -0.2f, gameTrack, Color.Orange)); gameCars.Add(new Car(gameTrack.Length - 80, 0.2f, gameTrack, Color.White)); gameCamera.AttachedToCar = true; foreach (Car c in gameCars) { c.LoadContent(content, 0); c.Update(new GameTime(), gameTrack, gameCars); } foreach (Car c in gameCars) c.Update(new GameTime(), gameTrack, gameCars); drawEffect = new BasicEffect(ScreenManager.GraphicsDevice) { World = gameCamera.worldMatrix, View = gameCamera.viewMatrix, Projection = gameCamera.projectionMatrix, TextureEnabled = true }; drawAlphaEffect = new AlphaTestEffect(ScreenManager.GraphicsDevice) { World = gameCamera.worldMatrix, View = gameCamera.viewMatrix, Projection = gameCamera.projectionMatrix, ReferenceAlpha = 254, AlphaFunction = CompareFunction.Greater }; AudioController.RestartMusic("title"); base.LoadContent(); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { Camera = new Camera(GraphicsDevice, GraphicsDevice.Viewport); spriteBatch = new SpriteBatch(GraphicsDevice); texGrid = Content.Load<Texture2D>("grid"); texBlank = Content.Load<Texture2D>("blank"); handleSphere = Content.Load<Model>("spherelowpoly"); spriteFont = Content.Load<SpriteFont>("font"); sphereTransforms = new Matrix[handleSphere.Bones.Count]; handleSphere.CopyAbsoluteBoneTransformsTo(sphereTransforms); drawEffect = new BasicEffect(GraphicsDevice) { World = Camera.worldMatrix, View = Camera.viewMatrix, Projection = Camera.projectionMatrix, TextureEnabled = true }; drawAlphaEffect = new AlphaTestEffect(GraphicsDevice) { World = Camera.worldMatrix, View = Camera.viewMatrix, Projection = Camera.projectionMatrix, ReferenceAlpha = 254, AlphaFunction = CompareFunction.Greater }; Track = Track.BuildFromControlPoints(ControlPoints); Track.LoadContent(Content); parallaxManager = new ParallaxManager(GraphicsDevice.Viewport); Track.LoadHorizon(Content, parallaxManager); ResetCars(); //car = new Car(0, Track, Color.Red); //car.LoadContent(Content, 0); }