public void stopSound()
 {
     if (theSound != null)
     {
         theSound.stop();
     }
 }
Exemplo n.º 2
0
 virtual public void morirse()
 {
     muerto            = true;
     tiempoDesdeMuerto = 0f;
     MOVEMENT_SPEED    = 0;
     MatOrientarMuerto = MatOrientarObjeto;
     direccionMuerto   = vectorDireccionRotacion;
     SonidoMovimiento.stop();
 }
Exemplo n.º 3
0
 protected override void InteractEntity()
 {
     /*if (Player.Instance().puedoEnfrentarTiburon() && estoyVivo())*/
     // muestro efecto para que "desaparezca"
     // cuando el tiempo llega a x, ahi lo desaparezco
     mesh.Effect    = efectoDesaparecer;
     mesh.Technique = "RenderScene";
     time           = 0;
     meAtaco        = true;
     sound.stop();
     Player.Instance().usarArma();
     //reducirVidaEn(conQueMeAtacan.danio);
     //reducirVidaEn(10);
     //Console.WriteLine("Me ataco");
     // player gano
     Hud.ChangeStatus(Hud.Status.Win);
     soundWin.play();
 }
Exemplo n.º 4
0
        /// <summary>
        ///     Se llama en cada frame.
        ///     Se debe escribir toda la lógica de computo del modelo, así como también verificar entradas del usuario y reacciones
        ///     ante ellas.
        /// </summary>
        public override void Update()
        {
            PreUpdate();
            if (disposing)
            {
                PostUpdate();
                return;
            }
            time += ElapsedTime;
            effect.SetValue("health", Player.Health());

            Hud.Update(Input);
            estaEnAlgunMenu = Hud.GetCurrentStatus() == Hud.Status.MainMenu || Hud.GetCurrentStatus() == Hud.Status.Instructions;

            //Que no se pueda hacer nada si estas en game over salvo dar enter
            if (Hud.GetCurrentStatus() == Hud.Status.GameOver || Hud.GetCurrentStatus() == Hud.Status.Win)
            {
                // si gano hay que hacer update del tiburon para verlo desaparecer
                if (Hud.GetCurrentStatus() == Hud.Status.Win)
                {
                    shark.Update(ElapsedTime);
                }
                PostUpdate();
                return;
            }
            if ((estadoAnterior == Hud.Status.MainMenu || estadoAnterior == Hud.Status.Instructions) && !estaEnAlgunMenu)
            {
                // me meto en la nave cuando paso del menu
                estaEnNave = true;
                Player.Update(ElapsedTime, ref estaEnNave, true);
            }
            estadoAnterior = Hud.GetCurrentStatus();
            if (estaEnAlgunMenu && !disposing)
            {
                sonidoUnderwater.play(true);
                // update de elementos de agua
                nave.Update();
                Oceano.Update(time);
                oceano.Update();
                Particulas.Update(time);
                foreach (var pez in peces)
                {
                    pez.Update(ElapsedTime);
                }
                foreach (var coral in corales)
                {
                    coral.Update(ElapsedTime);
                }
                foreach (var metal in metales)
                {
                    metal.Update(ElapsedTime);
                }
                foreach (var piedra in piedras)
                {
                    piedra.Update(ElapsedTime);
                }

                fog.updateValues();
                effect.SetValue("ColorFog", fog.Color.ToArgb());
                effect.SetValue("CameraPos", TGCVector3.TGCVector3ToFloat4Array(Camera.Position));
                effect.SetValue("StartFogDistance", fog.StartDistance);
                effect.SetValue("EndFogDistance", fog.EndDistance);
                effect.SetValue("Density", fog.Density);
                effect.SetValue("eyePos", TGCVector3.TGCVector3ToFloat3Array(Camera.Position));
            }
            if (!estaEnAlgunMenu)
            {
                arma.Update();
                if (estaEnNave)
                {
                    interiorNave.Update();
                    sharkSound.stop();
                    sonidoUnderwater.stop();
                    efectoInterior.SetValue("eyePos", TGCVector3.TGCVector3ToFloat3Array(Camera.Position));
                }
                else
                {
                    sonidoUnderwater.play(true);
                    // update de elementos de agua
                    nave.Update();
                    Oceano.Update(time);
                    oceano.Update();
                    Particulas.Update(time);

                    DateTime actualTimestamp = DateTime.Now;
                    // Mostrar Tiburon cada X cantidad de tiempo
                    if (actualTimestamp.Subtract(timestamp).TotalSeconds > 15)
                    {
                        shark.Spawn();
                        timestamp = actualTimestamp;
                    }
                    shark.Update(ElapsedTime);

                    foreach (var pez in peces)
                    {
                        pez.Update(ElapsedTime);
                    }
                    foreach (var coral in corales)
                    {
                        coral.Update(ElapsedTime);
                    }
                    foreach (var metal in metales)
                    {
                        metal.Update(ElapsedTime);
                    }
                    foreach (var piedra in piedras)
                    {
                        piedra.Update(ElapsedTime);
                    }

                    fog.updateValues();
                    effect.SetValue("ColorFog", fog.Color.ToArgb());
                    effect.SetValue("CameraPos", TGCVector3.TGCVector3ToFloat4Array(Camera.Position));
                    effect.SetValue("StartFogDistance", fog.StartDistance);
                    effect.SetValue("EndFogDistance", fog.EndDistance);
                    effect.SetValue("Density", fog.Density);
                    effect.SetValue("eyePos", TGCVector3.TGCVector3ToFloat3Array(Camera.Position));
                }

                //Camara y jugador
                FPSCamara.Update(ElapsedTime);

                Player.Update(ElapsedTime, ref estaEnNave);
            }

            // esto se hace siempre
            //Lockear mouse
            Cursor.Position = mousePosition;
            PostUpdate();
        }
Exemplo n.º 5
0
        public void recorrerCamino(Vector3 posCam)
        {
            float   elapsedTime = GuiController.Instance.ElapsedTime;
            Boolean i           = true;

            switch (estado)
            {
            case Estado.RecorriendoIda:
                sonidoPerseguir.stop();
                sonidoCaminar.play(true);
                while (caminoIda[contador] != null && i)
                {
                    if ((mesh.Position - caminoIda[contador]).LengthSq() < 1f)
                    {
                        contador++;
                        if (contador == cantidadWP)
                        {
                            contador = 0;
                            estado   = Estado.RecorriendoVuelta;
                        }
                    }
                    else
                    {
                        if (bloqueadoMov)
                        {
                            tiempoBloqueado -= 50f * elapsedTime;
                            selectedAnim     = animationList[0];
                            mesh.playAnimation(selectedAnim, true);
                            if (tiempoBloqueado < 0f)
                            {
                                tiempoBloqueado = 100f;
                                bloqueadoMov    = false;
                                selectedAnim    = animationList[1];
                                mesh.playAnimation(selectedAnim, true);
                            }
                        }
                        else
                        {
                            this.seguirA(caminoIda[contador], elapsedTime, VELOCIDAD_MOVIMIËNTO);
                        }
                        i = false;
                    }
                }


                break;

            case Estado.RecorriendoVuelta:
                sonidoPerseguir.stop();
                sonidoCaminar.play(true);
                while (caminoVuelta[contador] != null && i)
                {
                    if ((mesh.Position - caminoVuelta[contador]).LengthSq() < 1f)
                    {
                        contador++;
                        if (contador == cantidadWP)
                        {
                            contador = 0;
                            estado   = Estado.RecorriendoIda;
                        }
                    }
                    else
                    {
                        if (bloqueadoMov)
                        {
                            tiempoBloqueado -= 50f * elapsedTime;
                            selectedAnim     = animationList[0];
                            mesh.playAnimation(selectedAnim, true);
                            if (tiempoBloqueado < 0f)
                            {
                                tiempoBloqueado = 100f;
                                bloqueadoMov    = false;
                                selectedAnim    = animationList[1];
                                mesh.playAnimation(selectedAnim, true);
                            }
                        }
                        else
                        {
                            this.seguirA(caminoVuelta[contador], elapsedTime, VELOCIDAD_MOVIMIËNTO);
                        }
                        i = false;
                    }
                }


                break;

            case Estado.Parado:
                sonidoCaminar.stop();
                Vector3 direccion = caminoOriginal[1] - mesh.Position;
                direccion.Normalize();
                direccion.Y = 0;
                mesh.rotateY((float)Math.Atan2(direccion.X, direccion.Z) - mesh.Rotation.Y - Geometry.DegreeToRadian(180f));
                break;

            case Estado.Persiguiendo:
                sonidoCaminar.stop();
                sonidoPerseguir.play(true);
                selectedAnim = animationList[2];
                mesh.playAnimation(selectedAnim, true);
                seguirASlider(posCam, elapsedTime, VELOCIDAD_MOVIMIENTO_CORRER);
                dejarDePerseguir(posCam);
                break;
            }
        }