Archivo de la categoría: Prototipos

Prototipo Shooter 2D

Prototipo con Unity 2D de un juego mezcla Shooter 2D y plataformas.

Lo más destacado en este prototipo es:

  • Uso de RaycastHit2D para los disparos.
  • Uso de precisión aleatoria en los disparos.
  • Uso de Linerenderer entre dos puntos.
  • Función de recarga del arma.
  • Uso de variables tipo LayerMask.
  • Desactivación y cambio de cursor
  • Movimiento de plataformas entre dos puntos tipo transform

La idea es ver cómo actúa tanto raycast como linecast. En este ejemplo lo he utilizado para simular un disparo de arma y para comprobar que los enemigos tienen visión directa con el player principal, pero la gente lo suele utiliza también para saber si el personaje está en el suelo, está chocando con algún elemento, etc.

La precisión aleatoria es un elemento que da dificultad y un poco de realismo al juego. Muy fácil de implementar con un Random.Range(-precision,precision) que devuelve un valor comprendido entre la precisión del player.

El uso de linerender se hace necesario para verificar la dirección del disparo y con qué elemento colisiona.

La función de recarga del arma es un añadido que da también realismo al juego y un toque más de dificultad al tener que economizar las balas para no llegar cara el enemigo sin ellas.

El uso de variables tipo Layermask permite seleccionar las capas en las que quieres que actúe raycast. Muy útil para selecionar las capas donde se encuentran los enemigos, las paredes, el suelo, el player,… y dejar fuera las que no se necesiten.

Sigue leyendo

Prototipo Recolector de Bitcoins

El prototipo es muy simple. Consiste en recolectar Bitcoins pulsando sobre ellas, sin que lleguen a caer en el vacío. La dificultad se incrementa a medida que vamos recolectando monedas.

Lo único que he aprendido en este ejercicio de Unity 2D es poder mantener variables entre carga de escenas. En este caso el score que mantiene tu máxima puntuación. Simplemente hay que añadir una variable de tipo static, así de simple.

Un par de cosas que he he podido solucionar pero pienso que hay alguna manera mejor para hacerlas es el intanciar un prefab de partículas al eliminar la moneda (para suavizar el Destroy) y cambiar la velocidad de repetición del InvokeRepeating. En el ejemplo siguiente cancelo con CancelInvoke y vuelvo a crearlo con InvokeRepeating ya con el tiempo modificado.

Sigue leyendo

Prototipo Flappy Bird Unity

Inicio la categoría de prototipos con el desarrollo rápido de un prototipo de Flappy Bird con Unity 2D.

Sigue leyendo