Esempio n. 1
0
        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();
 }
Esempio n. 3
0
 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();
 }
Esempio n. 4
0
        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);
        }
Esempio n. 6
0
        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();
        }