Etiquetas

Mostrando entradas con la etiqueta 3 - Desarrollo de juegos Android. Mostrar todas las entradas
Mostrando entradas con la etiqueta 3 - Desarrollo de juegos Android. Mostrar todas las entradas

martes, 7 de octubre de 2014

Haciendo correr nuestro juego

Recomendaciones

Muy buenas a todos los lectores. Para seguir con la dinámica que expliqué en la entrada anterior, antes que nada haré algunas recomendaciones. De nuevo se trata de otro canal. En este caso del canal de Pumpkin! . Tiene vídeos de altísima calidad y muy divertidos que os aconsejo que no os perdáis. Aquí os dejo su enlace:


Twitter: @pimpinyt


Además, para finalizar el apartado de recomendaciones os recuerdo el canal recomendado anteriormente. Suscribiros que merece la pena de verdad:

Twitter: @10Emiaj


Tutorial

Pues ya es hora de empezar con la parte divertida. Hoy aprenderemos a configurar la clase principal de nuestro proyecto y mostraremos la primera escena de nuestro juego. Es decir, en este primer tutorial de programación ya conseguiremos hacer correr nuestro juego.
Estad muy atentos a cada indicación y como ya hemos hecho anteriormente, si queda alguna duda podéis dejarlas en los comentarios o contestar la encuesta de la página principal del blog, en la que ustedes decidís si profundizamos más en el tema o pasamos a la siguiente lección.

Bien, lo primero que debemos hacer en cualquier proyecto Android es crear el propio proyecto. Para ello hacemos click en File -> New -> Android Applications Projects. Nos aparecerá una ventana como esta:



Rellenamos el formulario tal y como aparece en la foto y presionamos Next. En la nueva ventana que nos aparece deseleccionamos la opción “Create custom luncher icon” y presionamos Next varias veces hasta que nos dejen presionar Finish.

Una vez realizados estos pasos os debe aparecer un nuevo proyecto en la parte izquierda de Eclipse (es posible que automáticamente se cree otro adicional con el nombre “appcompat_v7”. Ignoradlo y seguid con el tutorial). Solo nos queda un paso antes de ponernos con el código, que es decirle al proyecto que use como librería el proyecto de Andengine. Para ello hacemos click en el botón derecho del ratón sobre nuestro proyecto y presionamos Properties. A la derecha de la ventana que nos aparece hacemos click en Android, y luego añadimos el proyecto Andengine como librería presionando en Add y eligiendo el proyecto correspondiente. Si todo sale bien os tiene que salir algo parecido a esto:


Si de lo contrario en vez de los ticks verdes os aparecieran unas aspas rojas, tendréis que volver a realizar este último paso.

Tras esto llegaría el momento que todos esperábamos. Empecemos a picar código. Un juego para Android, a diferencia de una aplicación, suele tener una única actividad. Echad un vistazo a vuestro proyecto y curiosead por los paquetes y carpetas creados (Sin cambiar nada). Observaréis que hay una clase llamada MainActivity que si la abrís tiene este aspecto:



De momento esta será la principal y única actividad que tendrá nuestro proyecto. Ahora lo primero que debemos hacer es que esta actividad extienda de una clase actividad especial que nos provee AndEngine en la cual tendremos que implementar una serie de métodos propios del motor de videojuego. En la siguiente entrada os explicaré como funcionan esos métodos y el ciclo de vida de un juego para Android. Antes quiero que en este tutorial veáis lo fácil que es hacer correr nuestra aplicación. Entonces, donde pone “extends ActionBarActivity” lo cambiaremos por “extends BaseGameActivity”. Borramos todo lo que existe desde la línea 12 a la 35 y hacemos clicks con el segundo botón del ratón en la palabra MainActivity para señalar la opción “Add unimplemented methods”. Como resultado nos quedará algo igual a esto:



Ahora vamos a ir explicando y rellenando cada uno de esos métodos. Si algún detalle lo obviamos es bien porque se explicará en entradas posteriores y no es necesario para esta o porque es un conocimiento que vais a adquirir con la práctica y la observación del comportamiento de nuestro juego. No obstante, podéis preguntar lo que os surja.

Empezamos por el método “onCreateEngineOptions”. En este método se configuran una serie de parámetros del motor del juego tales como la cámara, la resolución o la orientación del dispositivo. El método nos debe quedar así:



@Override
public EngineOptions onCreateEngineOptions() {
       camera = new Camera(0, 0, 800, 480);
       EngineOptions engineOptions = new EngineOptions(true,                    ScreenOrientation.LANDSCAPE_FIXEDnew FillResolutionPolicy(), this.camera);
       engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON);
       return engineOptions;
}

Podemos ver que hemos creado un objeto de tipo Camera que hemos situado en las coordenadas 0,0 y con un tamaño de 800x480 píxeles. Además hemos creado un objeto de tipo EngineOptions al que le hemos pasado una serie de parámetros al constructor. Entre ellos, hoy vamos a destacar los siguientes.

ScreenOrientation.LANDSCAPE_FIXED: Indica una orientación horizontal del dispositivo.

New FillResolution(): Indica que sea cual sea la resolución del dispositivo, nuestra aplicación se adaptará a ella ocupando toda la pantalla.

This.camera: Le estamos indicando que use como cámara la que hemos creado en líneas anteriores.


Los métodos onCreateResources y onPopulateScene deben quedar de la siguiente manera:

@Override
public void onCreateResources(
             OnCreateResourcesCallback pOnCreateResourcesCallback)
             throws IOException {
       pOnCreateResourcesCallback.onCreateResourcesFinished();
}
@Override
      
public void onPopulateScene(Scene pScene,
             OnPopulateSceneCallback pOnPopulateSceneCallback)                               throws IOException { pOnPopulateSceneCallback.onPopulateSceneFinished();
}

De momento no los usaremos, así que serán explicados en posteriores tutoriales.

Por último, antes de hacer correr nuestro juego rellenaremos el método “onCreateScene” de este modo:

@Override
public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback)
                    throws IOException {
       Scene scene=new Scene();
       Rectangle rectangle=new Rectangle(100, 400, 75, 75,                              this.getVertexBufferObjectManager());
       scene.attachChild(rectangle);
      
            
       MoveModifier moveModifier = new MoveModifier(3, 200,400 , 600, 400);
       MoveModifier moveModifier2 = new MoveModifier(3, 600, 400, 200, 400);
            
       SequenceEntityModifier sequenceEntityModifier = new                              SequenceEntityModifier(moveModifier,moveModifier2);
            
       LoopEntityModifier loopEntityModifier = new                                             LoopEntityModifier(sequenceEntityModifier);
            
             rectangle.registerEntityModifier(loopEntityModifier);

       pOnCreateSceneCallback.onCreateSceneFinished(scene);
      
}

De este método solo explicaremos la primera parte. Como podéis ver creamos un objeto de tipo Scene. Nosotros llamaremos Scene a cada una de las pantallas que aparecerá en nuestro juego. Tras la designación del Scene hemos creado un objeto del tipo Rectangle y lo hemos posicionado en las coordenadas 100, 400. Además, le hemos dado un tamaño de 75x75. Por último hemos adjuntado el Rectangle a la Scene con el método attachChild, de manera que hemos pintado el rectángulo en nuestra escena del juego.

Ahora, si abrimos el bluestack y ejecutamos nuestra aplicación nos debe aparecer algo similar a esto, en la que el rectángulo debe moverse de lado a lado:



Viendo el resultado obtenido, se me ha ocurrido ya el juego que vamos a trabajar para este tutorial. En la siguiente entrada daré más detalles del mismo. Os dejo aquí una foto del código completo que he realizado por si alguien se pierde durante el tutorial:




Bueno hasta aquí el tutorial de hoy. Espero que os hayáis divertido y que hayáis aprendido mucho. Hasta luego.

jueves, 2 de octubre de 2014

Configuración del entorno de desarrollo

Configuración del entorno de desarrollo

Muy buenas a todos. Es muy importante que prestéis atención a esta primera parte del tutorial, ya que en ella determinaremos la configuración que necesita el equipo para crear nuestro juego. De cualquier modo quiero que, tras leer esto, hagáis vuestras sugerencias sobre otras posibles configuraciones que conozcáis y que nos permitan desarrollar en Android. Principalmente, debéis tener en cuenta que vamos a trabajar con tres herramientas: Eclipse + Andengine + Bluestacks. Todas ellas se distribuyen de forma gratuita en internet. Seguramente muchos penséis que no es la mejor de las opciones, pero es la que elegiremos en nuestro tutorial. ¿Por qué? Pues porque con ellas en muy poco tiempo conseguiremos tener nuestro juego corriendo con unos niveles de acabado muy buenos. Una vez dicho esto, empecemos con el tutorial.
En primer lugar, necesitaremos un entorno de desarrollo. Como ya indiqué anteriormente, este será Eclipse. ¿Vale cualquier versión? Sí, pero la que aconsejamos y vamos a usar  en este tutorial en concreto es una versión preparada con el plugin de Android y las herramientas necesarias para trabajar con dicho sistema operativo.
Podéis descargarla de este enlace:
Solo tenéis que darle al botón azul donde pone “Download Eclipse ADT”, aceptar los términos y condiciones y elegir vuestra versión de sistema operativo.

Lo siguiente que debemos tener es un emulador en el que probar nuestra aplicación. La versión de Eclipse que hemos bajado nos da la posibilidad de configurar nuestros propios emuladores, pero lo cierto es que a mí personalmente no me dieron buenos resultados. Entre otras cosas son excesivamente lentos. Es por ello que usaremos Bluestacks como alternativa.
Podéis bajarlo en este enlace:

Me consta (por experiencia propia) que Bluestacks tiene problemas de compatibilidad con Window 7 de 64 bits, pero no os preocupéis porque al parecer existe solución.
En el caso de aquellos que usen Window 7 de 64 bits, antes de ejecutar el instalador tenéis que darle a propiedades -> compatibilidad y ponéis que se ejecute con compatibilidad con Window 7.  Además debéis señalar la opción de “Ejecutar este programa como administrador” y presionar el botón “Cambiar la configuración para todos los usuarios”. En mi caso, me funcionó de este modo.

Si llegáis a este punto, se puede decir que tenéis el ordenador preparado para desarrollar aplicaciones para el sistema operativo de Android. Pero nosotros queremos desarrollar un juego, y para ello nos serviremos del motor para videojuegos de Android, el cual nos facilitará muchísimo las cosas.
Atentos al paso siguiente que es el más importante. Abrimos Eclipse y en el apartado titulado como “Package Explorer” hacemos click en el segundo botón y presionamos “Import…”

En la ventana que nos aparece seleccionamos “Git” -> “Project from Git” -> “Next”. Seleccionamos la opción “URI” y en la siguiente ventana pegamos esta dirección (https://github.com/nicolasgramlich/AndEngine.git) en el campo “URI”. Presionamos “Next” y nos preguntará qué rama deseamos descargar. Señaladlas todas y de nuevo “Next”.
En el apartado “Initial branch” seleccionamos “GLES2-AnchorCenter” y volvemos a presionar “Next”. En las siguientes ventanas le damos a siguiente hasta que nos permitan darle a finalizar.
Entonces os aparecerá en la ventana de proyectos de Eclipse un nuevo proyecto llamado AndEngine. Si esto ocurre es que has llegado a buen puerto. Lo único que nos queda es presionar ese proyecto con el segundo botón del ratón. Le damos a “Properties”-> “Android” y señalamos “Is Library”


Esto es todo por hoy. Al principio todo esto puede ser algo engorroso pero son los pasos fundamentales para poder desarrollar nuestros propios juegos. Muy pronto empezaremos a mostrar nuestras primeras escenas, pero antes debemos configurar nuestro entorno de desarrollo y crear una correcta estructura de proyecto para evitar problemas posteriores.

Espero que haya sido de vuestro agrado. En breve mucho más.

jueves, 25 de septiembre de 2014

Desarrollo de juegos Android

Abrimos un nuevo apartado en el que un desarrollador de aplicaciones nos indicará los pasos básicos para la construcción de un juego para Android. Siguiendo esta sección adquiriréis la experiencia y práctica suficiente para crear vuestro propio juego. En breve publicaremos la primera entrada, pero, mientras tanto, podéis hacernos algunas sugerencias de lo que os gustaría aprender en este apartado.
Para comenzar, os adelanto que trabajaremos con Eclipse como entorno de desarrollo y con AndEngine como motor de videojuego.