public override void Render(Luz luz) { base.Render(luz); //AABBGol.setRenderColor(Color.Red); //AABBGol.Render(); }
public virtual void Render(Luz luz) { Mesh.Effect.SetValue("lightColor", TGCVector3.TGCVector3ToFloat3Array(new TGCVector3(luz.Color.R, luz.Color.G, luz.Color.B))); Mesh.Effect.SetValue("lightPosition", TGCVector3.TGCVector3ToFloat3Array(luz.Translation)); Mesh.Effect.SetValue("Ka", Ka); Mesh.Effect.SetValue("Kd", Kd); Mesh.Effect.SetValue("Ks", Ks); Mesh.Effect.SetValue("shininess", shininess); Mesh.Effect.SetValue("reflection", reflection); Render(); }
public void Render(TGCMatrix matrizAuto, Luz luz) { Mesh.Effect.SetValue("lightColor", TGCVector3.TGCVector3ToFloat3Array(new TGCVector3(luz.Color.R, luz.Color.G, luz.Color.B))); Mesh.Effect.SetValue("lightPosition", TGCVector3.TGCVector3ToFloat3Array(luz.Translation)); Mesh.Effect.SetValue("Ka", .65f); Mesh.Effect.SetValue("Kd", .3f); Mesh.Effect.SetValue("Ks", 0); Mesh.Effect.SetValue("shininess", 0); Mesh.Effect.SetValue("reflection", 0); mesh.Transform = TGCMatrix.Scaling(new TGCVector3(scale)) * TGCMatrix.RotationX(rotacion) * TGCMatrix.Translation(new TGCVector3(translation)) * matrizAuto; mesh.Render(); }
private void getColisionContraObjetoCarga() { BoundingBoxCollider re = new BoundingBoxCollider(); foreach (BoundingBoxCollider recarga in objetosRecarga) { if ((boundPersonaje.Center - recarga.BoundingSphere.Center).Length() < (boundPersonaje.Radius.Length() + recarga.BoundingSphere.Radius)) { re = recarga; if (recarga.nombre == luz.descripcion()) { luz.tiempoAcumulado = 0; luz.setMaximaEnergia(); } else { switch (recarga.nombre) { case "Vela": luz = new Vela(); break; case "Linterna": luz = new Linterna(); break; case "Farol": luz = new Farol(); break; } } meshEscenario.Remove(recarga.mesh); } } objetosRecarga.Remove(re); }
public EscenaJuego(TgcCamera Camera, string MediaDir, string ShadersDir, TgcText2D DrawText, float TimeBetweenUpdates, TgcD3dInput Input, List <Jugador> jugadores, Jugador jugadorActivo, Jugador segundoJugador = null, bool dia = true) : base(Camera, MediaDir, ShadersDir, DrawText, TimeBetweenUpdates, Input) { this.dia = dia; screenQuad = new TgcScreenQuad(); initFisica(); initMeshes(); this.jugadores = jugadores; this.jugadorActivo = jugadorActivo; this.jugadorDos = segundoJugador; initJugadores(); sol = new Luz(Color.White, new TGCVector3(0, 70, -130)); sonido = new TgcMp3Player(); sonido.FileName = MediaDir + "Music\\Acelerando.wav"; sonido.play(true); pelota = new Pelota(escena.getMeshByName("Pelota"), new TGCVector3(0f, 50f, 0)); pelota.Mesh.Effect.SetValue("texPerlin", TextureLoader.FromFile(D3DDevice.Instance.Device, MediaDir + "Textures\\PerlinNoise.png")); dynamicsWorld.AddRigidBody(pelota.Cuerpo); paredes = new Paredes(escena.getMeshByName("Box_5")); dynamicsWorld.AddRigidBody(paredes.Cuerpo); arcos = new Arco[2]; arcos[0] = new Arco(escena.getMeshByName("Arco"), FastMath.PI); arcos[1] = new Arco(escena.getMeshByName("Arco"), 0); dynamicsWorld.AddRigidBody(arcos[0].Cuerpo); dynamicsWorld.AddRigidBody(arcos[1].Cuerpo); camara = new CamaraJugador(jugadorActivo, pelota, Camera, paredes.Mesh.createBoundingBox()); if (PantallaDividida) { camaraDos = new CamaraJugador(segundoJugador, pelota, Camera, paredes.Mesh.createBoundingBox()); } ui = new UIEscenaJuego(); ui.Init(MediaDir, drawer2D); animacionGol = new AnimacionGol(pelota); //Cargar shader con efectos de Post-Procesado effect = TGCShaders.Instance.LoadEffect(ShadersDir + "CustomShaders.fx"); //Configurar Technique dentro del shader effect.Technique = "PostProcess"; effect.SetValue("screenWidth", D3DDevice.Instance.Device.PresentationParameters.BackBufferWidth); effect.SetValue("screenHeight", D3DDevice.Instance.Device.PresentationParameters.BackBufferHeight); g_pCubeMap = new CubeTexture(D3DDevice.Instance.Device, 64, 1, Usage.RenderTarget, Format.X8R8G8B8, Pool.Default); //Creamos un Render Targer sobre el cual se va a dibujar la pantalla renderTargetBloom = new Texture(D3DDevice.Instance.Device, D3DDevice.Instance.Device.PresentationParameters.BackBufferWidth / 2, D3DDevice.Instance.Device.PresentationParameters.BackBufferHeight / 2, 1, Usage.RenderTarget, Format.X8R8G8B8, Pool.Default); depthStencil = D3DDevice.Instance.Device.CreateDepthStencilSurface(D3DDevice.Instance.Device.PresentationParameters.BackBufferWidth, D3DDevice.Instance.Device.PresentationParameters.BackBufferHeight, DepthFormat.D24S8, MultiSampleType.None, 0, true); }
public override void Init() { //Para la creacion de checkpoints, borrar en el futuro System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone(); customCulture.NumberFormat.NumberDecimalSeparator = "."; System.Threading.Thread.CurrentThread.CurrentCulture = customCulture; Clipboard.Clear(); this.inicializarCamara(); //Seteo el personaje seteoDePersonaje(); //Seteo del monsturo seteoDelMonstruo(); //Seteo el escenario escenario = new TgcSceneLoader().loadSceneFromFile(MediaDir + "Mapa\\mapaProjectMarble-TgcScene.xml"); //initPuertaGiratoria(); //Almacenar volumenes de colision del escenario objetosColisionables.Clear(); CollisionManager.obstaculos = new List <BoundingBoxCollider>(); foreach (var mesh in escenario.Meshes) { if (mesh.Name.Contains("Recarga")) { BoundingBoxCollider recarga = BoundingBoxCollider.fromBoundingBox(mesh.BoundingBox); string[] nombre = Regex.Split(mesh.Name, "-"); recarga.nombre = nombre[1]; recarga.mesh = mesh; objetosRecarga.Add(recarga); } else { if (mesh.Name.Contains("Puerta")) { mesh.AutoTransformEnable = true; BoundingBoxCollider puerta = BoundingBoxCollider.fromBoundingBox(mesh.BoundingBox); puertas.Add(puerta); } if (mesh.Name.Contains("Placard") || mesh.Name.Contains("Locker")) { armarios.Add(BoundingBoxCollider.fromBoundingBox(mesh.BoundingBox)); } BoundingBoxCollider obj = BoundingBoxCollider.fromBoundingBox(mesh.BoundingBox); obj.nombre = mesh.Name; objetosColisionables.Add(obj); CollisionManager.obstaculos.Add(BoundingBoxCollider.fromBoundingBox(mesh.BoundingBox)); } meshEscenario.Add(mesh); } CheckpointHelper.BuildCheckpoints(); DestinoMonstruo = CheckpointHelper.checkpoints[0]; //Crear manejador de colisiones collisionManager = new ElipsoidCollisionManager(); collisionManager.SlideFactor = 2; collisionManager.GravityEnabled = false; colisionadorMonstruo = new ElipsoidCollisionManager(); colisionadorMonstruo.SlideFactor = 2; colisionadorMonstruo.GravityEnabled = false; drawer2D = new Drawer2D(); this.incializarMenu(); inicializarPantallaNegra(); mp3Player = new TgcMp3Player(); inicializarBarra(); iniciliazarAlarma(); incializarVisionNoctura(); luz = new Linterna(); }