Mortal Balance Space


¿Serás capaz de hacer la mejor puntuación?
Mortal Balance Space es un survival que conserva la jugabilidad del primer Mortal Balance, pero esta vez en una pista infinita!
Haz la mejor puntuación y entra entre los 10 mejores del mundo.


Información del proyecto

Plataforma

Motor

Lenguaje

C# y Unity Javascript

Compañía

Pizza&Play Videogames

Finalizado

06/07/2012

Descarga

Mortal Balance Space

Para el correcto funcionamiento de esta Apk, será necesario activar en Android el permiso para instalación de aplicaciones desde orígenes desconocidos puesto que no procede de Google Play.

Equipo

Diseño:
José Miguel Barros Reche
Christian Rodríguez Elvira
Pitu Álvarez
Cristian Soriano Crespo
Ilustración:
Pitu Álvarez
Modelado 3D:
José Miguel Barros Reche
Christian Rodríguez Elvira
Escultura 3D:
Christian Rodríguez Elvira
Animación 3D:
José Miguel Barros Reche
Programación:
Cristian Soriano Crespo
Efectos de sonido:
José Miguel Barros Reche
Música ambiente:
José Miguel Barros Reche
Nota: Debido a que en un futuro alguno de mis proyectos podría no estar disponible en los lugares de publicación, añado una versión descargable para que sea posible probarlo. Así mismo también añado un apartado de capturas de pantalla y gameplays por si en un futuro no pudiesen ejecutarse en los sistemas en rigor.
Ejemplo de código

  //Script para aplicar la rotación al player usando el acelerómetro.

  //Enums y Clases Globales comentadas, estarán en el Script correspondiente.

  //Creamos un enum con las posibles caidas con las que se encontrará el Player.
  //enum TiposCaida
  //{
  //	Ninguna = 0,
  //	Fisica = 1,
  //	Virtual = 2
  //}

  //Variable para la velocidad de la rotación.
  public var velocidadRotacion : float = 0f;

  //Cuerda sobre la que rotar.
  private var cuerda : Transform;

  //Ángulo límite para que el personaje se caiga.
  public var anguloMaximo : float = 0f;

  //Variable para aplicar el cambio random del ángulo del Player. Para añadirle dificultad.
  private var anguloRandom : float = 0f;

  //Variables para calcular el tiempo que debe tardar en hacerse el random del ángulo.
  private var tiempoCambio : float = 0f;
  public var tiempoRandom : float = 0f;

  //Ángulo máximo del random.
  public var maxAnguloRandom : float = 0f;

  //Script de movimiento del Player, para controlar cuando usarlo o no.
  private var scriptMovimiento : MovimientoPlayer;

  function Awake (){
    //Capturamos el script de movimiento del Player.
    scriptMovimiento = this.GetComponent("MovimientoPlayer");
  }

  function FixedUpdate (){
    //Si el ángulo en el eje Z está en el intervalo de caida.
    if(this.transform.eulerAngles.z > anguloMaximo && this.transform.eulerAngles.z < 360 - anguloMaximo){
      //Activamos la gravedad para que caiga el Player.
      this.rigidbody.useGravity = true;
        
      //Cambiamos el estado del Player a caida Física para que el movimiento del Player no influya y permitir una muerte limpia.
      scriptMovimiento.SetCaida(TiposCaida.Fisica);
      
      //Desactivamos este script para que no podamos seguir rotando.
      this.enabled = false;
    }
    //Si no hemos caido.
    else{
      //Si el tiempo actual es mayor que el tiempo de cambio, realizamos el random en el ángulo.
      if(Time.time >  tiempoCambio){
        //Calculamos el ángulo random que añadirá dificultad al juego.
        anguloRandom = Random.Range(maxAnguloRandom * -1 , maxAnguloRandom);
        //Calculamos el nuevo tiempo para realizar el cambio del random.
        tiempoCambio = Time.time + tiempoRandom;
      }
      
      //Debug.Log(anguloRandom);
      
      //Si estamos saltando limitamos el ángulo de rotación para no poder caernos en el aire.
      if(
        scriptMovimiento.GetEstado() == EstadosPlayer.EmpezandoSaltoDerecha || 
        scriptMovimiento.GetEstado() == EstadosPlayer.EmpezandoSaltoIzquierda ||
        scriptMovimiento.GetEstado() == EstadosPlayer.SaltandoDerecha || 
        scriptMovimiento.GetEstado() == EstadosPlayer.SaltandoIzquierda ||
        scriptMovimiento.GetEstado() == EstadosPlayer.AcabandoSaltoDerecha ||
        scriptMovimiento.GetEstado() == EstadosPlayer.AcabandoSaltoIzquierda
      ){
        //Declaramos una variable auxiliar para guardar el ángulo que aplicaremos.
        var anguloFinal : float = this.transform.eulerAngles.z;
        
        //Si estamos inclinados a la izquierda marcamos el límite desde la izquierda.
        if(anguloFinal < anguloMaximo){
          anguloFinal = Mathf.Clamp(
            anguloFinal + (anguloRandom + (Input.acceleration.y * velocidadRotacion)) * Time.deltaTime, 
            1 - anguloMaximo, //En caso de 45º : 1 - 45 = -44 = 314 (Ángulo de caida 315)
            anguloMaximo - 1 //En caso de 45º : 45 - 1 = 44 (Ángulo de caida 45)
          );
        }
        //Si no, marcamos el limite desde la derecha.
        else{			
          anguloFinal = Mathf.Clamp(
            anguloFinal + (anguloRandom + (Input.acceleration.y * velocidadRotacion)) * Time.deltaTime, 
            360 - (anguloMaximo + 1), //En caso de 45º : 360 - 46 = 314 (Ángulo de caida 315)
            360 + (anguloMaximo - 1) //En caso de 45º : 360 + 44 = 404 = 44 (Ángulo de caida 45)
          );
        }
        
        //Aplicamos la rotación del Player.
        this.transform.eulerAngles.z = anguloFinal;
      }
      //Si no estamos saltando usamos los calculos de rotación normales.
      else{
        //Aplicamos la rotación del Player, alrededor de un punto, usando el acelerómetro.
        this.transform.RotateAround(
          //Punto sobre el que rotar (Será la cuerda en la que estemos).
          cuerda.position, 
          //Vector sobre el que rotar (Posición frontal del Player).
          this.transform.forward,
          //Angulo de rotación. 
          (anguloRandom + (Input.acceleration.y * velocidadRotacion)) * Time.deltaTime
        );
      }
    }
  }


  //----- Sets ------

  //Cambiamos la cuerda sobre la que rotar.
  public function setCuerda(nuevaCuerda : Transform){
    cuerda = nuevaCuerda;
  }


  //---- Gets ------

  //Devolvemos el valor del angulo máximo.
  public function GetAnguloMaximo() : float
  {
    return anguloMaximo;
  }
Capturas de pantalla
Mortal Balance Space Póster
Mortal Balance Space Menú
Mortal Balance Space Instruciones 1
Mortal Balance Space Instruciones 2
Mortal Balance Space Instruciones 3
Mortal Balance Space Instruciones 4
Mortal Balance Space Inicio
Mortal Balance Space Pausa
Mortal Balance Space Partida
Mortal Balance Space Muerte
Mortal Balance Space Record