- BotonMenu (para el cambio de escena cuando pulso play).
- BotonSalida (para el cambio de escena cuando pulso exit).
- CuentaEnemigos (para el control del número de enemigos destruidos).
- Disparo (input de usuario para que el jugador dispare).
- DisparoEnemigos (disparo aleatorio de los enemigos).
- GameOver (para el control de Game Over por enemigos en el límite).
- MovimientosEnemigos (para el desplazamiento en zig-zag de los enemigos).
- MovimientoDisparoEnemigos (para el movimiento e impacto de los proyectiles enemigos).
- Nave (input de usuario para mover al jugador).
- Rocas (velocidad en la que rotan los obstáculos).
- Proyectil (movimiento e impacto del proyectil del jugador).
- Puntos (para llevar el control de la puntuación).
- Vidas (numero de las vidas que tiene el jugador).
Aquí dejo el GamePlay y un ejecutable para que lo juguéis vosotros mismos!
Para obtener el ejecutable del juego:
1) Copia este enlace en tu navegador:
https://mega.nz/#!sk8QRCLA
2) Introduce esta contraseña:
!aGrHdQ1XbL_5Z48iFS9myv1jkQ5fKrqgwtPOSTI-Ewg
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Uso de terrenos. Modelos del Asset Store, pinceles, luces, texturas, sistemas de partículas y demás materiales para crear esta gran escena y así poder ser un juego de exploración libre.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The Dreamcatcher. Realización de este juego de explotar burbujas para PC y Android. Hecho con C#.
La estética está basada en el juego de cartas Magic: The Gathering. Uso de Photoshop y 3ds Max 2016 para los objetos de escena. Sistemas de partículas de diferentes colores, InputTouch y GameManager.
Aquí dejo un vídeo del GamePlay, un ejecutable para que puedas tener el juego en tu propio móvil y un enlace directo para jugarlo desde la web! :P
Para obtener el ejecutable del juego:
1) Copia este enlace en tu navegador:
https://mega.nz/#!B0VjCbaD
2) Introduce esta contraseña:
!crnTh9cKZaq6ryfXAwm1kxB_s1fW1NXyxSWKxvX4CUM
3) Cuando ya lo tengas descargado, tienes que copiar el archivo ".apk" en tu móvil. Por ejemplo, puedes ponerlo en la carpeta de descargas o en la que más cómoda te sea de encontrar luego.
4) Instálalo y a jugar!
Para jugarlo desde la web, primero será necesario que tengas el navegador Firefox, Ópera o Internet Explorer.
Después, sólo tendrás que hacer doble click en el archivo "Web.html" y listo!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
A partir de este script, conseguimos que la esfera salte las plataformas.
using UnityEngine;
using System.Collections;
public class saltarplataforma : MonoBehaviour { //se pone tags a las plataformas y la esfera tiene rigidbody, con su fuerza va subiendolas
void OnCollisionEnter(Collision objetoChocado){
Rigidbody rigidbodyEsfera = GetComponent<Rigidbody> ();
rigidbodyEsfera.velocity = Vector3.zero;
if (objetoChocado.gameObject.tag == "Avanzar" ) {
rigidbodyEsfera.AddForce (3, 15, 0, ForceMode.Impulse);
}
if (objetoChocado.gameObject.tag == "Giro") {
rigidbodyEsfera.AddForce (0, 15, 3, ForceMode.Impulse);
}
}
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Realización de esta simple escena con la finalidad de que el cubo lanzado caiga encima de la Spotlight.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
A partir de este script, conseguimos que el cubo destruya la pared cuando choque con ella.
using UnityEngine;
using System.Collections;
public class movercubo : MonoBehaviour {
void Update() {
transform.Translate(0,0,10*Time.deltaTime);
}
void OnCollisionEnter(Collision pared){
Destroy (pared.gameObject);
Destroy (gameObject);
}
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Acelerómetros. Uso de Unity Remote 4 conectado a través del móvil o tablet. Pruébalo.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Puerta automática. Diseño de la escena con materiales y luces. Uso del controller y doorswitch con C#.
Script del controller:
using UnityEngine;
using System.Collections;
[RequireComponent (typeof (Animator) ) ]
[RequireComponent (typeof (Collider) ) ]
public class Controller: MonoBehaviour
{
// Posibles estados de la puerta
private const int CERRADA = 1;
private const int BLOQUEADA = 2;
private const int ABIERTA = 3;
private Animator p_animator;
private int p_estado;
private int p_numPersonasDentro;
private bool p_cerrojoActivo;
// Este metodo se llama desde el cerrojo cuando es activado
public void CambiaCerrojo ()
{
p_cerrojoActivo = !p_cerrojoActivo;
}
void Start ()
{
p_animator = this.GetComponent<Animator>();
p_estado = CERRADA;
p_cerrojoActivo = false;
p_numPersonasDentro = 0;
}
void Update ()
{
switch (p_estado)
{
case CERRADA:
ProcesaEstadoCerrada();
break;
case BLOQUEADA:
ProcesaEstadoBloqueada();
break;
case ABIERTA:
ProcesaEstadoAbierta();
break;
}
}
void OnTriggerEnter (Collider i_other)
{
// Por la matriz de colision sabemos que quien ha entrado esta
// en la capa Player o Enemigo
p_numPersonasDentro++;
}
void OnTriggerExit ( Collider i_other)
{
// Por la matriz de colision sabemos que quien ha salido esta
// en la capa Player o Enemigo
p_numPersonasDentro--;
}
void ProcesaEstadoCerrada ()
{
p_animator.ResetTrigger("AbrePuerta");
p_animator.SetTrigger("CierraPuerta");
if (p_cerrojoActivo == true)
{
p_estado = BLOQUEADA;
}
else
{
if(p_numPersonasDentro > 0)
{
p_estado = ABIERTA;
}
}
}
void ProcesaEstadoBloqueada ()
{
p_animator.ResetTrigger("AbrePuerta");
p_animator.SetTrigger("CierraPuerta");
if (p_cerrojoActivo == false)
{
p_estado = CERRADA;
}
}
void ProcesaEstadoAbierta ()
{
p_animator.ResetTrigger("CierraPuerta");
p_animator.SetTrigger("AbrePuerta");
if (p_cerrojoActivo == true)
{
p_estado = BLOQUEADA;
}
else
{
if(p_numPersonasDentro < 1)
{
p_estado = CERRADA;
}
}
}
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
No hay comentarios:
Publicar un comentario