Libgdx: Actions like cocos2d

Una de las cosas que mas me gustó del trabajo con cocos2d fue sin dudas sus acciones, nunca había trabajado con una librería que implementase esta filosofía y ahora me doy cuenta de lo perdido que estaba. En libgdx se echa de menos las acciones de cocos2d, aunque trae sus propias acciones se queda un poco cojo ya que implementa lo más básico .. un movimiento lineal, el acelerado, decelerado, el overshoot (el típico rebote de una cosa en el suelo). Que vale, cumplen su función más básica pero frente a cocos2d te sientes un poco desértico.

Una de las mejores opciones en libgdx para hacer interpolaciones es usar Aurelien Ribon que es lo mejorcito que podéis encontrar. Sólo tenéis que mirar su ultima demo para ver sus capacidades, y podéis probarlo directamente en vuestro android o vía html porque para quien no lo sepa libgdx ya tiene un backend para generar código html5+js.

Bueno .. esto es muy muy bueno no lo dudo pero tenia la simple necesidad de implementar un movimiento elástico, así que la opción mas rápida fue la de buscar estar interpolación en cocos2d y traérmela. el resultado ha sido traer las interpolaciones básicas de Cocos2d a libgdx: Easecubic, EaseExponential, EaseSine, EaseElastic, EaseBounce, EaseBack, todas en sus 3 versiones, In, Out & InOut

 like cocos2d: ver todas las interpolaciones

Continue reading “Libgdx: Actions like cocos2d” »

Libgdx: Escenas y transiciones

Tras ver lo facil que resulta crear sprites y animaciones en libgdx vamos a ver algo esencial para iniciarl cualquier proyecto, y es la creación de escenas, cambiar de unas escenas a otras y como hacer transiciones entre ellas.

Empezaré por comentaros que todo lo que voy a desarrollar para libgdx lo estoy englobando en un paquete llamado GdxOfcode, y a medida que vaya desarrollando mas cosas irá creciendo .. de momento no publico la rama principal del proyecto porque va a estar creciendo con cada nuevo sample, asi que lo mas posible es que con cada sample se incluya todo el source necesario.

 Escenas Sample 1 – Caso mas básico de cambio de escenas
 Escenas Sample 2 – Añadir transiciones

Continue reading “Libgdx: Escenas y transiciones” »

New Theme: Typebased +200px

Hoy toca un poco de [ot] …. Me estaba cansando ya el poco espacio que te deja el tema Typebased para los posts, así que me dije un día … ‘será chungo esto de modificar? … como es que nadie lo ha hecho’ y como el camino se hace a base de caminar, pues me pillé los css y resultó mucho mas fácil de lo que me temía.

El resultado es una versión de typebased modificada con 200px más para la columna del contenido. Y se agradece, ahora las secciones de code se ven mucho mejor. Asi que aquí os dejo el resultado. en primer lugar el link al source original del tema:
 Typebased | Woo themes

Y ahora mi tema modificado
 typebased+200.zip (238.29 Kb)

Actions en libgdx

Como ya os dije en el anterior post en libgdx nos da en la mayoria de casos una estructura para hacer un juego, pero algunas clases vamos a tener que implementarlas nosotros mismos, y cosas tan basicas como las acciones o los sprites parece que están a media (o esa impresión me da en un primer vistado) asi que lo primero que debemos hacer es comprender como está estructurada toda su filosofía y como hacer algo tan básico como mover un sprite con una acción para ir probando cosas

Empezamos por el package Scene2d en este paquete libgdx ofrece las clases básicas para hacer un juego en 2D, en principio nos vamos a centrar en estas 4 clases:

Stage es un contenedor para actores, podemos imaginar que será una pantalla de nuestro juego, no tiene porque ser de la dimensión de pantalla, puede ser mucho mas grande ya que controla la zona que se está viendo, permite hacer zoom o scrolls sobre ella. Recibe los eventos del touch y te dice sobre que actor de los que contiene se esta interactuando.

Actor es cualquier cosa de nuestro juego con la que podamos interactuar .. un sprite de toda la vida. Es una clase Abstracta, eso quiere decir que no la podemos instanciar, será obligatorio crear nuestra clase que implemente este método. Y será necesario implementar el método draw()

Group es una agrupación de Actors .. se usa para crear Sprites mas complejos que mantengan una jerarquía entre ellos

Action es la clase que se usa para aplicar cualquier transformación a un Actor,

libgdx incluye las siguientes acciones:

  • FadeIn – Modifica el alpha de un actor hasta llegar a 1.0f
  • FadeOut – Modifica el alpha de un actor hasta llegar a 0.0f
  • FadeTo – Modifica el alpha de un actor hasta llegar a un valor indicado
  • MoveBy – Desplaza un actor un valor determinado
  • MoveTo – Desplaza el actor hasta una posición
  • RotateBy – Rota el actor un ángulo especificado
  • RotateTo – Rota el actor hasta llegar a un ángulo
  • ScaleTo – Scala el actor a un factor indicado

Para combinar acciones nos ofrece estas 2 clases

  • Parallel – Ejecuta todas las acciones a la vez
  • Sequence – Ejecuta las acciones una por una

Otras acciones para combinar que no hacen ningún efecto por si solas

  • Repeat – Repite una acción las veces indicadas
  • Forever – Repite una acción para siempre
  • Delay – Hace una pausa de un tiempo antes de ejecutar la acción
  • Remove – Borra el actor de la Stage

Además de estas acciones todas implementan un Interpolator para modificar la velocidad o aceleración del movimiento, de esta forma se puede modificar el Rate de las acciones

  • AccelerateDecelerateInterpolator
  • AccelerateInterpolator
  • AnticipateInterpolator
  • DecelerateInterpolator
  • LinearInterpolator
  • OvershootInterpolator

Continue reading “Actions en libgdx” »

Wellcome to Android

Desde hace un tiempo vengo ya con ganas de empezar a hacer algo en Android, y llevo unos días probando distintos frameworks orientados al desarrollo de juegos, tampoco os creáis que he probado todo lo habido, de momento solo 3, así que os voy a contar con cual me he centrado y como funciona. Os hablo de LibGDX

Libgdx se presenta como una librería para desarrollar juegos cross-platform, y es que al estar desarrollada en java funciona en windows, mac, linux y android, en todos ellos tirando contra unas librerías nativas para manejar openGl … suena bien pero será cierto? Tengo que decir antes que nada que lo de ‘game development library’ de momento esta muy lejos de la realidad, la librería te ofrece muchas ventajas para manejar opengl de forma genérica, de hecho la propia documentación dice What its “A high-performance, cross-platform game development framework to be used as the basis for engines and games” and what is not “A game engine including everything but the kitchen sink” … os queda claro no? … que no te lo va a dar todo comido y algo tendrás que hacer

A continuación .. instalamos el entorno, preparamos el sdk de Android, configuramos el emulador y a probar nuestro primer hello world
Continue reading “Wellcome to Android” »

Card3d with cocos2d

Vamos a crear un nuevo proyecto con el fin de renderizar cartas en 3D dentro de un proyecto cocos2d, todo esto queda fuera del alcance de cocos2d así que la finalidad del mismo será ver lo complicado que resulta sobrecargar los métodos necesarios para tomar el control de OpenGL para rotar un objeto y aplicarle luces.

El objetivo será crear un objeto con apariencia de carta en 3D para implementar el típico juego de buscar parejas:

Continue reading “Card3d with cocos2d” »

Catapum Parte 2: Accelerometer

En nuestro primer juego intentamos tocar un poco en todos los campos para poder llegar a hacer un juego, es un ejemplo bastante sencillo de implementar y podemos ver como cocos2d nos va a agilizar enormemente todo el proceso. Pero ahora vamos a ver como sobre el mismo juego podemos incluir cosas nuevas, y vamos a empezar por cambiar el control del joystick por los acelerometros.

Continue reading “Catapum Parte 2: Accelerometer” »

Nuestro primer juego en cocos2d

Vamos a empezar a aprender cocos2d y para ello lo mejor es empezar con un sencillo juego .. un mata mata de avioncitos, veremos como dibujar sprites implementar acciones, explosiones, usar un Joystick, sonidos, transiciones … uhhhh de todo de todo

Continue reading “Nuestro primer juego en cocos2d” »

Joystick en cocos2d

Vamos a ver como se implementa un sencillo joystick en cocos2d … investigando un poco podemos encontrar que cocos2d ya trae una clase para hacer esta función, y aunque no lo han añadido de serie al paquete podemos encontrar las clases dentro del directorio /extras/, pues bien .. estas clases servirán para darnos una idea de lo que tenemos que hacer pero realmente se encuentra en un estado demasiado joven para ser útil en un juego, así que vamos a modificar unas cuantas cosas.

Continue reading “Joystick en cocos2d” »

Nuevos objetivos :: Cocos2D

Bueno …. realmente tras muchos quebraderos de cabeza con el xcode en general (y con el Interface Builder en particular) puedo decir que ya me he cansado. Hace tiempo descubrí cocos2d y aunque al principio no me pareció interesante tengo que decir que ya ha llegado a un nivel de madurez notable y hoy vamos a pasarnos a usar este framework:

Continue reading “Nuevos objetivos :: Cocos2D” »