/// <summary> /// Load graphics content for the game. /// </summary> public override void LoadContent() { if (content == null) { content = new ContentManager(vxEngine.Game.Services, "Content"); } //Get the Graphics Manager. mGraphicsManager = vxEngine.Game.Services.GetService(typeof(IGraphicsDeviceService)) as GraphicsDeviceManager; //Set the Current Gameplay Screen vxEngine.CurrentGameplayScreen = this; sphereModel = vxEngine.EngineContentManager.Load <Model> ("Models/lghtng/sphere"); //Setup Camera Camera = new vxCamera3D(vxEngine, new Vector3(0, 15, 0), 0, 0, Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, (float)vxEngine.GraphicsDevice.Viewport.Width / vxEngine.GraphicsDevice.Viewport.Height, .1f, 10000), CameraType.ChaseCamera); Camera.Yaw = -MathHelper.PiOver2; DoFog = false; FogNear = Camera.FarPlane / 4; FogFar = Camera.FarPlane; //Setup Sun SunEmitter = new vxSunEntity(vxEngine); SkyBox = new vxSkyBoxEntity(vxEngine); //Setup Audio Manager AudioManager = new vxAudioManager(vxEngine); // Create and add the lensflare component. lensFlare = new LensFlareComponent(vxEngine); lensFlare.LoadContent(); if (GameType == vxEnumGameType.Networked) { IsPausable = false; } //Setup Renderer. //vxEngine.Renderer = new vxRenderer (vxEngine); // default window size mGraphicsManager.PreferMultiSampling = false; //vxEngine.Renderer.loadContent (mGraphicsManager); Camera.AspectRatio = mGraphicsManager.GraphicsDevice.Viewport.AspectRatio; #if VRTC_INCLDLIB_NET //InitialiseNetwork (); #endif }
/// <summary> /// Inicializar /// </summary> protected override void Initialize() { #if DEBUG this.Graphics.PreferredBackBufferWidth = 1024; this.Graphics.PreferredBackBufferHeight = 600; this.Graphics.PreferMultiSampling = false; this.Graphics.IsFullScreen = false; #else this.Graphics.PreferredBackBufferWidth = this.GraphicsDevice.DisplayMode.Width; this.Graphics.PreferredBackBufferHeight = this.GraphicsDevice.DisplayMode.Height; this.Graphics.PreferredBackBufferFormat = this.GraphicsDevice.DisplayMode.Format; this.Graphics.PreferMultiSampling = false; this.Graphics.IsFullScreen = true; #endif this.Graphics.ApplyChanges(); InputHelper.Initialize(this.GraphicsDevice); #if DEBUG GameComponents.Debug.DebugDrawer.Initialize(this.GraphicsDevice); #endif this.m_Scenery = new SceneryGameComponent(this); this.m_Scenery.UpdateOrder = 0; this.m_Scenery.DrawOrder = 0; this.Components.Add(this.m_Scenery); this.Services.AddService(typeof(SceneryGameComponent), this.m_Scenery); this.m_VehicleContainer = new VehicleContainerService(this); this.m_VehicleContainer.UpdateOrder = 1; this.Services.AddService(typeof(VehicleContainerService), this.m_VehicleContainer); this.m_BuilngContainer = new BuildingContainerService(this); this.m_BuilngContainer.UpdateOrder = 2; this.Services.AddService(typeof(BuildingContainerService), this.m_BuilngContainer); AmmoDrawer ammoDrawer = new AmmoDrawer(this, @"Content/Steel 1"); ammoDrawer.Rounds = this.Physics.Projectiles; ammoDrawer.UpdateOrder = 3; ammoDrawer.DrawOrder = 3; this.Components.Add(ammoDrawer); Building[] buildings = AddBuildings(BuildingTypes.Type0, 10); Vehicle[] squad01 = AddSquadron(VehicleTypes.LandSpeeder, 3); //Vehicle[] squad02 = AddSquadron(VehicleTypes.LandSpeeder, 3); //Vehicle[] squad03 = AddSquadron(VehicleTypes.LandSpeeder, 3); //Vehicle[] squad04 = AddSquadron(VehicleTypes.LandSpeeder, 3); //Vehicle[] squad05 = AddSquadron(VehicleTypes.LandSpeeder, 3); //Vehicle[] squad06 = AddSquadron(VehicleTypes.LandSpeeder, 3); //Vehicle[] squad04 = AddSquadron(VehicleTypes.LandRaider, 2); Vehicle[] squad05 = AddSquadron(VehicleTypes.LemanRuss, 3); //Vehicle[] squad06 = AddSquadron(VehicleTypes.LemanRuss, 3); Vehicle[] squad07 = AddSquadron(VehicleTypes.Rhino, 3); //Vehicle[] squad08 = AddSquadron(VehicleTypes.Rhino, 3); //Vehicle[] squad09 = AddSquadron(VehicleTypes.Rhino, 3); this.m_LensFlare = new LensFlareComponent(this); this.m_LensFlare.UpdateOrder = 96; this.m_LensFlare.DrawOrder = 96; this.Components.Add(this.m_LensFlare); this.m_Camera = new CameraGameComponent(this); this.m_Camera.UseMouse = true; this.m_Camera.Mode = CameraGameComponent.CameraModes.FirstPerson; this.m_Camera.UpdateOrder = 98; this.Components.Add(this.m_Camera); this.m_Info = new SceneryInfoGameComponent(this); this.m_Info.UpdateOrder = 99; this.m_Info.DrawOrder = 99; this.Components.Add(this.m_Info); this.m_TextDrawer = new TextDrawerComponent(this); this.m_TextDrawer.UpdateOrder = 100; this.m_TextDrawer.DrawOrder = 100; this.Components.Add(this.m_TextDrawer); this.m_ParticleManager = new ParticleManager(this); this.Components.Add(this.m_ParticleManager); base.Initialize(); IntersectionTests.m_DEBUGUSE = true; this.Physics.RegisterScenery(this.m_Scenery.Scenery); this.InitializeBuildings(buildings); this.InitializeSquadron(squad01); //this.InitializeSquadron(squad02); //this.InitializeSquadron(squad03); //this.InitializeSquadron(squad04); this.InitializeSquadron(squad05); //this.InitializeSquadron(squad06); this.InitializeSquadron(squad07); //this.InitializeSquadron(squad08); //this.InitializeSquadron(squad09); this.SetFocus(squad01[0]); //squad01[0].AutoPilot.GoTo(new Vector3(RandomComponent.Next(10000), 0, RandomComponent.Next(10000)), 60f); //squad02[0].AutoPilot.GoTo(new Vector3(RandomComponent.Next(10000), 0, RandomComponent.Next(10000)), 60f); //squad03[0].AutoPilot.GoTo(new Vector3(RandomComponent.Next(10000), 0, RandomComponent.Next(10000)), 60f); //squad04[0].AutoPilot.GoTo(new Vector3(RandomComponent.Next(10000), 0, RandomComponent.Next(10000)), 60f); //squad05[0].AutoPilot.GoTo(new Vector3(RandomComponent.Next(10000), 0, RandomComponent.Next(10000)), 60f); //squad06[0].AutoPilot.GoTo(new Vector3(RandomComponent.Next(10000), 0, RandomComponent.Next(10000)), 60f); //squad07[0].AutoPilot.GoTo(new Vector3(RandomComponent.Next(10000), 0, RandomComponent.Next(10000)), 40f); //squad08[0].AutoPilot.GoTo(new Vector3(RandomComponent.Next(10000), 0, RandomComponent.Next(10000)), 40f); //squad09[0].AutoPilot.GoTo(new Vector3(RandomComponent.Next(10000), 0, RandomComponent.Next(10000)), 40f); }
/// <summary> /// Inicialización /// </summary> protected override void Initialize() { // Inicializar el control de entrada de usuario InputHelper.Initialize(this.GraphicsDevice); // Actualizar la proyección GlobalMatrices.UpdateProjection(this.GraphicsDevice); #if DEBUG // Debug GameComponents.Debug.DebugDrawer.Initialize(this.GraphicsDevice); #endif // Suelo this.m_Scenery = new DemoScenery(this, _TerrainSize, GlobalTraslation, @"Content/dharma"); this.m_Scenery.UpdateOrder = 0; this.Components.Add(this.m_Scenery); this.Physics.RegisterScenery(this.m_Scenery); // Reflejo solar this.m_LensFlare = new LensFlareComponent(this); this.m_LensFlare.DrawOrder = 98; this.Components.Add(this.m_LensFlare); // Texto this.m_Text = new TextDrawerComponent(this); this.m_Text.DrawOrder = 99; this.Components.Add(this.m_Text); // Cámara this.m_Camera = new CameraGameComponent(this); this.m_Camera.UseMouse = true; this.m_Camera.Forward = Keys.Up; this.m_Camera.Backward = Keys.Down; this.m_Camera.Left = Keys.Left; this.m_Camera.Right = Keys.Right; this.m_Camera.Up = Keys.Add; this.m_Camera.Down = Keys.Subtract; this.m_Camera.Mode = CameraGameComponent.CameraModes.Free; this.m_Camera.UpdateOrder = 99; this.Components.Add(this.m_Camera); // Un edificio this.m_Building_1 = new BuildingType0(this, @"Content/Buildings/", @"WHBuilding01.xml"); this.m_Building_1.UpdateOrder = 3; this.Components.Add(this.m_Building_1); this.Physics.RegisterObject(this.m_Building_1); // Otro edificio this.m_Building_2 = new BuildingType0(this, @"Content/Buildings/", @"WHBuilding02.xml"); this.m_Building_2.UpdateOrder = 3; this.Components.Add(this.m_Building_2); this.Physics.RegisterObject(this.m_Building_2); // Otro edificio this.m_Building_3 = new BuildingType0(this, @"Content/Buildings/", @"WHBuilding03.xml"); this.m_Building_3.UpdateOrder = 3; this.Components.Add(this.m_Building_3); this.Physics.RegisterObject(this.m_Building_3); AmmoDrawer ammoDrawer = new AmmoDrawer(this, @"Content/dharma"); ammoDrawer.Rounds = this.Physics.Projectiles; ammoDrawer.UpdateOrder = 3; this.Components.Add(ammoDrawer); Random rnd = new Random(DateTime.Now.Millisecond); // Inicializa las cajas for (int i = 0; i < _Boxes; i++) { // Inicializa los componentes gráficos de las cajas float hsX = 0.5f + ((float)rnd.NextDouble() * 1.5f); float hsY = 0.5f + ((float)rnd.NextDouble() * 1.5f); float hsZ = 0.5f + ((float)rnd.NextDouble() * 1.5f); Vector3 min = new Vector3(-hsX, -hsY, -hsZ); Vector3 max = new Vector3(hsX, hsY, hsZ); CubeGameComponent cube = new CubeGameComponent(this, min, max, (max - min).Length() * 20f); this.Physics.RegisterObject(cube); this.m_Cubes.Add(cube); cube.UpdateOrder = 4; this.Components.Add(cube); } // Inicializa las esferas for (int i = 0; i < _Balls; i++) { // Inicializa los componentes gráficos de las esferas float radius = 0.5f + ((float)rnd.NextDouble() * 1.5f); BallGameComponent ball = new BallGameComponent(this, radius, radius); this.Physics.RegisterObject(ball); this.m_Balls.Add(ball); ball.UpdateOrder = 4; this.Components.Add(ball); } // Land Raider this.m_LandRaider = new LandRaider(this, "Content/Vehicles"); this.m_LandRaider.UpdateOrder = 5; this.Components.Add(this.m_LandRaider); this.Physics.RegisterObject(m_LandRaider); // Leman Russ this.m_LemanRuss = new LemanRuss(this, "Content/Vehicles"); this.m_LemanRuss.UpdateOrder = 5; this.Components.Add(this.m_LemanRuss); this.Physics.RegisterObject(m_LemanRuss); // Land speeder 1 this.m_LandSpeeder_1 = new LandSpeeder(this, "Content/Vehicles"); this.m_LandSpeeder_1.UpdateOrder = 5; this.Components.Add(this.m_LandSpeeder_1); this.Physics.RegisterObject(m_LandSpeeder_1); // Land speeder 2 this.m_LandSpeeder_2 = new LandSpeeder(this, "Content/Vehicles"); this.m_LandSpeeder_2.UpdateOrder = 5; this.Components.Add(this.m_LandSpeeder_2); this.Physics.RegisterObject(m_LandSpeeder_2); // El tanque del jugador 1 this.m_Rhino_1 = new Rhino(this, "Content/Vehicles"); this.m_Rhino_1.UpdateOrder = 5; this.Components.Add(this.m_Rhino_1); this.Physics.RegisterObject(m_Rhino_1); // El tanque del jugador 2 this.m_Rhino_2 = new Rhino(this, "Content/Vehicles"); this.m_Rhino_2.UpdateOrder = 5; this.Components.Add(this.m_Rhino_2); this.Physics.RegisterObject(m_Rhino_2); // Prueba //this.ball1 = new BallGameComponent(this, 1f, 1f); //this.Components.Add(ball1); //this.Physics.RegisterVehicle(ball1); //this.ball2 = new BallGameComponent(this, 1.5f, 2f); //this.Components.Add(ball2); //this.Physics.RegisterVehicle(ball2); //this.ball3 = new BallGameComponent(this, 2f, 4f); //this.Components.Add(ball3); //this.Physics.RegisterVehicle(ball3); //RodComponent rod1 = new RodComponent(this, this.ball1, Vector3.Up * this.ball1.Radius, null, new Vector3(0, 40, 0), 10f); //this.Components.Add(rod1); //this.Physics.RegisterContactGenerator(rod1.Rod); //RodComponent rod2 = new RodComponent(this, this.ball2, Vector3.Up * this.ball2.Radius, null, new Vector3(0, 40, 0), 10f); //this.Components.Add(rod2); //this.Physics.RegisterContactGenerator(rod2.Rod); //JointComponent joint1 = new JointComponent(this, this.ball1, Vector3.Down * this.ball1.Radius, this.ball3, Vector3.Left * this.ball3.Radius, 5f); //this.Components.Add(joint1); //this.Physics.RegisterContactGenerator(joint1.Joint); //JointComponent joint2 = new JointComponent(this, this.ball2, Vector3.Down * this.ball2.Sphere.Radius, this.ball3, Vector3.Right * this.ball3.Sphere.Radius, 5f); //this.Components.Add(joint2); //this.Physics.RegisterContactGenerator(joint2.Joint); //Joint2Component rod24 = new Joint2Component(this, this.ball1, Vector3.Up * this.ball1.Radius, null, new Vector3(0, 40, 0), 10f); //this.Components.Add(rod24); //this.Physics.RegisterContactGenerator(rod24.Rod); // Establecer el foco en el vehículo this.SetFocus(this.m_Rhino_1); base.Initialize(); this.Reset(); }