Archivo de la etiqueta: javascript

Formateando tiempo a horas, minutos y segundos en Javascript

En algunas ocasiones nos puede hacer falta formatear el tiempo transcurrido a un formato legible. Esto suele pasar en juegos de carreras o contra reloj. Para el usuario es mucho más fácil leer 01:01:01 hh/mm/ss que por ejemplo 3.661 segundos. Para realizar esta tarea necesitamos un código como el siguiente:

Point and Click mediante walkpoints

Sistema de navegación Point and Click para aventuras gráficas mediante Walkpoints. Con Unity 2D y Javascript. La idea es crear un sistema de navegación fácilmente modificable, así el personaje se desplazaría al walkpoint más cercano de nuestro click en la pantalla.

La lógica es buscar todos los prefabs etiquetados con el label walkpoint y seleccionar el punto más cercano. De este modo nuestro spawn sabrá a qué punto debe dirigirse.

Sigue leyendo

Eliminar prefab permitiendo terminar el sonido

En un artículo anterior recomendé no poner el sonido dentro del prefab o GameObject (una bala por ejemplo), ya que podía iniciarse Destroy antes de finalizar el sonido y quedar cortado. Me equivoqué. La lógica dice (y que poco a poco voy aprendiendo soluciones mejores) que si lo ideal es hacer un prefab ¿porqué vamos a excluir su sonido?. La solución para que no quede cortado es asegurarse que Destroy se aplica una vez el sonido ha finalizado. Por eso se tienen que aplicar estos pasos:

  1. Hacer desaparecer el prefab visualmente.
  2. Eliminar su Collider para evitar otras colisiones
  3. Calcular el tiempo de reproducción del sonido y aplicar Destroy

Algunas cosas que he aprendido en Unity 2D

No soy programador, al contrario, soy diseñador gráfico e ilustrador pero siempre se me ha dado bien la programación. Por eso os invito a opinar y mejorar mi código. A lo que vamos…

He estado dándole un poco a Unity 2D con unos sprites y animaciones que diseñé hace algún tiempo y que quería recuperar. Sí, el mago, el dragón y el fondo que aparecen en casi todos los últimos ejercicios.

Voy a dejar todo el código que he ido elaborando e intentaré explicar los puntos que creo se podrían mejorar o los más importantes.

Lo primero que recomiento es actualizar o descargar Unity 4.5 (si no lo has hecho ya) porque las versiones anteriores siempre tienen bugs que se van reparando con las últimas versiones.

Sigue leyendo

Ordenar sprites con sortingOrder

En algunos momentos necesitamos actualizar el orden de las capas para que el player pueda pasar por delante y por detrás de algunos elementos según su posición. Más en juegos tipo 2.5D o isométricos. En la imagen inferior vemos como sin intercambiar el orden de la pócima en un momento determinado podríamos pasar por encima de ella haciendo una perspectiva irreal.

La solución que he implementado seguro que no es la mejor pero puede funcionar. Calculando la posición “y” del player todos los objetos que estén por encima, y apliquemos el código inferior, tendrán el orden 0 y las que no orden 10. El player lo colocamos en el Order in Layer 5.

Sigue leyendo

Disparos, prefabs y detectores de colisiones

prefab_bullet
En el siguiente ejemplo vamos a hacer que nuestro mago dispare. Vamos a utilizar prefabs, clones de este prefab y detectores de colisiones.

Para que nuestro personaje dispare necesitamos un sprite al que llamaremos bullet. Con este sprite creamos un prefab que llamaremos bullet y que podemos poner en la carpeta de prefabs. Un prefab es un conjunto de componentes, sonidos, scripts, etc. que podemos clonar y donde al modificar el prefab se modifican todos los clones. El prefab contendrá el sprite de la imágen, el componente Rigid Body 2D con la gravedad a 0 y el Circle Collider 2D. También se le puede añadir sonido, partículas, etc.

El script asociado a bullet será el siguiente:

Sigue leyendo

OnTriggerEnter2D en unity

Para que OnTriggerEnter2D funcione correctamente en Unity hay que añadir el componente Box Collider 2D y checkear is Trigger. Añadir el componente Rigid Body 2D, poner el valor Gravity Scale a 0 (Comprobar que Is Kinematic está desactivado) y por último añadir el siguiente script.

Sonido de pasos aleatorios en Unity

Con el siguiente script podemos crear mediante uno o varios sonidos similares el efecto de footsteps o pasos aleatorios variando su pitch y su volumen. Hay que añadir el componente Audio Source para que el script funcione. En el ejemplo solo he utilizado un sonido. Para oir el efecto mover el personaje con las teclas WASD.

Sigue leyendo