示例#1
0
        private void ReproducirSonidoRandomEscenario()
        {
            if (personaje.estoyAdentro)
            {
                reproducirSonidoRandomIndoor();
            }
            else
            {
                reproducirSonidoRandomOutdoor();
                musicaFondoOutdoor.escucharSonidoActual(true);
            }

            reproducirSonidoRandomAmbiental();
        }
        public void Usar(Personaje personaje)
        {
            if (personaje.estoyAdentro)
            {
                personaje.TeletrasportarmeA(posicionSalida);
                personaje.setearSonidosOutdoor();
                sonidoApertura.escucharSonidoActual(false);
            }
            else
            {
                personaje.TeletrasportarmeA(posicionEntrada);
                personaje.setearSonidosIndoor();
                sonidoCierre.escucharSonidoActual(false);
            }

            personaje.estoyAdentro = !personaje.estoyAdentro;
        }
 private void reproducirCaminata()
 {
     if (!sonidoDescanso)
     {
         if (this.suenoDerecha)
         {
             sonidoActualDer.escucharSonidoActual(false);
             this.suenoDerecha = false;
             sonidoDescanso    = true;
         }
         else
         {
             sonidoActualIzq.escucharSonidoActual(false);
             this.suenoDerecha = true;
             sonidoDescanso    = true;
         }
     }
     else
     {
         sonidoDescanso = false;
     }
 }
示例#4
0
        public override void Update()
        {
            PreUpdate();


            if (!estoyJugando)
            {
                estoyJugando = Input.keyDown(Key.Space) && !estoyEnElMenu;
                if (estoyJugando)
                {
                    sonidoBarra = new Sonido("AllAroundYou.wav", false);
                    var sonidoStart = new Sonido("auto, abrir puerta.wav", -3000, false);
                    sonidoStart.escucharSonidoActual(false);
                }
            }
            else
            {
                this.musicaMenu.DetenerSonido();
                UpdateGame();
            }

            PostUpdate();
        }
示例#5
0
        private void InteraccionMonster()
        {
            if (!personaje.tieneLuz && !personaje.estoyEscondido && personaje.tiempoSinLuz > GameModel.TiempoSinAdvertencia)
            {
                this.renderizado = monsterBlur;


                if (personaje.tiempoSinLuz == GameModel.TiempoDeAdvertencia)
                {
                    var posicion      = personaje.puntoDemira(personaje.anguloAbsolutoEnY, personaje.anguloAbsolutoEnX);
                    var nuevaPosicion = new TGCVector3(posicion.X, -350, posicion.Z);
                    var delta         = new TGCVector3(1000, 0, 1000);

                    if (nuevaPosicion.X > 0)
                    {
                        delta = new TGCVector3(-1000, 0, 1000);
                    }

                    if (nuevaPosicion.Z > 0)
                    {
                        delta = new TGCVector3(delta.X, 0, -1000);
                    }

                    nuevaPosicion += delta;

                    monster.InstanciarMonster(personaje, nuevaPosicion, monstruoActual);
                    //escenario.tgcScene.Meshes.Add(monster.ghost);
                    //monster.DisposeMonster();
                    monster.reproducirSonidoRandom();
                    estatica.escucharSonidoActual(true);
                    personaje.viAlMonster = true;
                }

                if (personaje.tiempoSinLuz == GameModel.TiempoDeGameOver)
                {
                    perdi            = true;
                    tiempoDeRotacion = 0;

                    monster.DisposeMonster();
                    //El monster aparece detrás del personaje
                    var anguloDeRotacion = FastMath.PI;

                    var posicion      = personaje.puntoDemira(personaje.anguloAbsolutoEnY + anguloDeRotacion, personaje.anguloAbsolutoEnX);
                    var nuevaPosicion = new TGCVector3(posicion.X + 300, -350, posicion.Z + 300);

                    monster.InstanciarMonster(personaje, nuevaPosicion, monstruoActual);
                    //escenario.tgcScene.Meshes.Add(unBicho.ghost);

                    personaje.LockMouse = false;

                    //escenario.tgcScene.Meshes.Add(monster.ghost);
                    var newTarget = new TGCVector3(nuevaPosicion.X, nuevaPosicion.Y + 350, nuevaPosicion.Z);
                    personaje.SetCamera(personaje.eye, newTarget);
                    monster.ReproducirSonidoGameOver();
                    //personaje.GameOver(this);
                }



                if (tiempoDeRotacion > 6 && personaje.tiempoSinLuz > GameModel.TiempoDeGameOver)
                {
                    personaje.GameOver(this);
                }

                tiempoDeRotacion += ElapsedTime;
            }
            else
            {
                renderizado = this.sombras;
            }
        }