lunes, 22 de junio de 2015

Eventos Personalizados


Ya hemos visto en varias oportunidades como se manejan eventos definidos bajo ciertos parámetros que se activan o “disparan” en determinadas situaciones (sonidos, presión de teclas, cargas, mouse, frames, etc).

Pero qué pasa si necesito extender la funcionalidad de los eventos o crear eventos propios? Veamos:




sábado, 30 de mayo de 2015

Actuate: Segunda Parte


En la entrada anterior comenzamos a ver que son los tweens y el uso de Actuate para crear algunos ejemplos. Vimos la sintaxis y algunas aplicaciones sencillas de esta librería con un solo sprite en pantalla. 

Esta vez, nos acercamos a un ejemplo un poco más real, con muchos “actores” mostrándose al mismo tiempo. Veremos algunos efectos visuales en conjunto con movimiento y  cómo afecta ello al rendimiento de nuestra aplicación.

Actuate: 10 ejemplos sencillos


Actuate es una librería originalmente creada para ActionScript con el objetivo de facilitar la creación y manejo de Tweens. Luego fue adaptada para su utilización con Haxe.


Fue creada y es mantenida (entre tantas otras) por Joshua Granick dentro del proyecto OpenFL. Si bien nos vamos a encontrar muchas similitudes con su versión original (Para AS3), su sintaxis difiere un poco. 


sábado, 16 de mayo de 2015

Manipulación de gráficos SVG


Siempre que se trabaja con un formato de imagen tradicional (archivos bmp, jpeg, gif, png, etc..) se debe tener en cuenta sus limitaciones. 

En nuestro caso, y me refiero a la programación de juegos, es su escalabilidad o la propiedad que tiene una imagen para cambiar de tamaño sin perder resolución la que por lo general nos puede dar problemas..


viernes, 1 de mayo de 2015

Testeando proyectos y experimentos


Hoy quería hacer mención de una herramienta muy interesante para el desarrollo de aplicaciones (más allá de la programación con Haxe). Sirve para desarrollar y sobretodo probar aplicaciones en un entorno remoto y virtual. Quizás ya hayan utilizado entornos de este tipo anteriormente (Existen muchos paquetes de máquinas virtuales, en lo particular tengo experiencia  con VMware y últimamente he jugado un poco con VirtualBox +  Vagrant). Pero fue Koding el que ha llamado mi atención estos días.

jueves, 23 de abril de 2015

Spritesheet y Sparrow(xml) Parte 2


ShoeBox nos da la oportunidad de generar Atlas de imágenes con formato Sparrow que podemos implementar en haxe de forma transparente en cuestión de minutos (entre otras opciones). 


A continuación veremos como tratar estos archivos para generar sprites.

jueves, 16 de abril de 2015

Spritesheet y Sparrow(xml) Parte 1


El ejemplo del la entrada anterior deja en claro como utilizar un atlas, pero con el método Drawtiles no es muy funcional a gran escala.

Tenemos en este momento la facilidad de importar datos generados por un Atlas de imagenes, pero estamos atascados al querer implementarlas.
Joshua Granick al ver esto (presumo yo) creó una librería llamada Spritesheet, la cual vamos a echar un vistazo ahora.



viernes, 3 de abril de 2015

Atlas, Xml y Packers (Parte 2)


Hemos generado un Atlas y también nuestro archivo de marcadores con toda la información. Veamos cómo implementarlo. Es importante conocer como es la estructura de un archivo generado en este lenguaje (xml). Los métodos que utiliza Haxe para manipularlos pueden crear confusión a primera vista si no se entiende bien su arquitectura o como los datos son almacenados.





viernes, 27 de marzo de 2015

Atlas, Xml y Packers (Parte 1)


La semana pasada comenzamos con una introducción al tema: Como recortar una imagen en fragmentos para poder utilizarlas de forma separada y así optimizar un poco el rendimiento de nuestra aplicación. 

También nos ahorrarnos líneas y líneas de código..pero como se generan estas sábanas de gráficos? existe algún método para hacernos las cosas aún más sencillas? Veamos..



sábado, 21 de marzo de 2015

Aplicaciones y Rendmimiento (Segunda Parte)


Continuando con la serie, veamos de qué se tratan los Tiles o mosaicos.  En teoría es un conjunto de imágenes agrupadas en un solo archivo que, mediante una serie de algoritmos, vamos extrayendo una a una para alojarlas en memoria y posteriormente utilizarlas. Presenta ventajas y desventajas este método de manipular imágenes, pero por lo general y a largo plazo se vuelve casi imprescindible.





viernes, 13 de marzo de 2015

Aplicaciones y Rendmimiento (Primera Parte)


Hasta ahora hemos utilizado métodos muy sencillos para mostrar gráficos. Básicamente porque son ejemplos simples que utilizan pocos recursos, pero en una aplicación real, donde se necesita controlar cientos de objetos al mismo tiempo, las cosas pueden ponerse feas muy rápidamente.





viernes, 6 de marzo de 2015

Space Invaders: Final del Tutorial


Es curioso que la imagen a la izquierda pese más de la mitad (62Kb) que el proyecto - ejemplo terminado (104Kb).

En esta última entrega de Space Invaders, agregamos algo más de control y lógica, sonido y terminamos de construir el juego.

Agreguemos algún efecto de sonido para que no sea taaaan aburrido de jugar :P




viernes, 27 de febrero de 2015

Generar Movimiento: Que no aterricen!


Existen dos técnicas básicas para controlar movimiento de objetos. La primera (que ya vimos en el pasado) es por medio del manejo de cuadros (frames). Podemos alterar o manipular en tiempo de ejecución cuando ingresamos a un nuevo cuadro, cuando estamos dentro o al salir del mismo.





viernes, 20 de febrero de 2015

Pintando Alienígenas


Como necesitamos poblar de marcianos enemigos, utilizaremos una matriz para situarlos y a su vez tener control sobre cada uno de ellos. Muy similar a lo visto en el “Arkanoid”, pero esta vez con dos tapices distintos. Luego podrán moverse en la pantalla y disparar contra nuestra nave, pero primero deben aparecer en la pantalla.



viernes, 13 de febrero de 2015

Nos Atacan!!!


En otras entradas hemos visto cómo dibujar objetos, hoy vamos a ver como hacerlos un poco más complejos. 
Openfl nos permite importar imágenes para “empapelar” nuestros objetos. Existen varios métodos para llevar a cabo esta tarea. Con este modesto ejemplo de “Space Invaders” que comenzamos la entrada anterior veremos algunos métodos muy sencillos para utilizarlas en nuestros proyectos.





viernes, 6 de febrero de 2015

El Teclado y los Marcianos(?)


Existen varias formas de interceptar cuando el usuario presiona una tecla, la más simple en mi opinión es a través de una librería que Openfl dispone específicamente para este objetivo.
Trabaja de forma similar a lo visto en el ejemplo anterior (mouse). Al mismo tiempo, veremos otras formas de crear sprites.




viernes, 23 de enero de 2015

OpenFL y Sprites (Arkanoid Parte 5)


La versión de nuestro Arkanoid funciona de manera satisfactoria (dentro de ciertos límites ya que es un ejemplo de programación, no un producto terminado), pero quisiera agregar algunos efectos antes de dar por concluido el tutorial.

En primer lugar, me gustaría agregarle dos efectos de sonido: uno al impactar la bola con la plataforma y el otro cuando impacta contra los ladrillos. 




viernes, 16 de enero de 2015

OpenFL y Sprites (Arkanoid Parte 4)



En la entrega anterior vimos un rudimentario sistema para la detección de bordes. OpenFL nos brinda algunas herramientas que hacen esta tarea un poco más sencilla. Veamos cómo se comporta la bolita al colisionar contra nuestra plataforma:




viernes, 9 de enero de 2015

OpenFL y Sprites (Arkanoid Parte 3)


Tenemos todos los objetos creados y puestos en pantalla. Vamos a darle algo de movimiento: En principio, lo único que debe controlar el usuario es la Plataforma. Simplemente se mueve de derecha a izquierda. 

Obviamente el juego original tiene muchos más detalles, pero el motivo de este blog es aprender. Quedará en ustedes en agregar complejidad al juego.



viernes, 2 de enero de 2015

OpenFL y Sprites (Arkanoid Parte 2)

 
Para crear los Ladrillos y la Bolita, procedemos de la misma forma que con la plataforma. 

La única diferencia es que en vamos a pintar los ladrillos con colores elegidos aleatoriamente. La función random es la encargada de hacer el trabajo más fácil.