domingo, 26 de febrero de 2017

SpaceInvaderClon - Paso 0

Hola Buenas.

Ahora comenzamos con nuestro primer juego pedagógico.

Claraciones:

  • He tenido varios problemas con la versión más reciente del LibGDX(1.9.5). Sospecho que es por que hace más de 4 años que tengo instalado el SDK de android. He hecho varias pruebas si casi siempre me falla cuando quiero trabajar con la librería Box2D. Pero he logrado hacer funcionar todo con la última versión de LigGDX 1.9.5 y Android Studio 2.23, así que para este proyecto utilizaremos estas versiones.
  • Los artes las buscaremos en http://opengameart.org/

Manos a la Obra:

Como ya hemos dicho antes, descargamos la versión 1.9.5 de LibGDX aquí, en teoría con esta versiones podemos modificar que version de LibGDX queremos utilizar, guia aqui.
Por cualquier cosa también podemos descargar versiones más viejas aquí.
Una vez tengamos descargado, descomprimimos estos archivos en algun de fácil acceso, de preferencia en la raíz o home, por ejemplo C:/(si estamos en Windows).

Siguiente paso, descargar los assets, para hecho nos vamos a la pagina http://opengameart.org/,
para efectos prácticos ya los tengo listo, puedes cargarlo de aquí
Recomiendo encarecidamente tener actualizado su android studio.

Nuestro juego será más o menos como el mítico Space Invader, tratara de nuestro nave estara en la base de la pantalla, y solo se movera de izquierda y derecha, y presionando sobre la pantalla disparara hacia arriba. Por otro lado los enemigos bajarán de forma constante y aparecerán de forma aleatoria en el eje X.

Creamos una carpeta donde se generarán los archivos de LibGDX, yo utilizare: C:\workspace_libgdxelsalvador\spaceInvaderClon, le damos doble click gdx-setup.jar, de los archivos recién descargados. Y colocamos los siguientes valores:
Y presionamos el Botón Generate, y damos click en "SI" o "YES" de las advertencias que nos aparezcan. Esperamos que finalice, luego ya estamos listo para importar en nuestro Android Studio:
Luego importamos nuestro proyecto, elegimos la opción: Import Project y elegimos la carpeta donde esta los archivos generados(en mi caso: C:\workspace_libgdxelsalvador\spaceInvaderClon)

Android Studio nos dará una recomendación, en este caso le diremos que si Actualice(Update):

Esperemos que finalice toodo el proceso de actualización de Gradles, una vez se finalice se debe de configurar que el Android Studio ejecute nuestro sub proyecto de Desktop, como aplicación.
Para ello elegimos el sub proyecto "desktop" y damos click sobre Edit Configuratios...

Damos click al botón "+" y elegimos la opción "Application":

Aquí hay que llenar los datos que se nos piden, podemos hacer uso de los botones que nos ayudan a buscar por medio de un explorador. Aquí podemos resaltar la opción Working directory, es donde se encuentran nuestros ASSETS:
Aplicamos los cambio y presionamos el OK.
Listo, ya podemos ejecutar nuestro subproyecto Desktop.

Haremos algo de limpieza antes de comenzar todo.
En nuestro subproyecto "android", eliminamos la imagen "badlogic.jpg" de la carpeta "assets" y luego copias todos los archivos descargados de nuestro assets_libgdxelsalvador.blogspot.com.zip, siempre en la carpeta "assets", así:

En la clase "GameLoop", del subproyecto "core", lo dejamos así:
package sv.com.chuckle.game.spaceinvaderclon;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class GameLoop extends ApplicationAdapter {
   SpriteBatch batch;
   Texture img,img2,img3;

   @Override   public void create () {
      batch = new SpriteBatch();
      img = new Texture("alien.png");
      img2 = new Texture("Starfighter.png");
      img3 = new Texture("missile.png");
   }

   @Override   public void render () {
      Gdx.gl.glClearColor(1, 0, 0, 1);
      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
      batch.begin();
      batch.draw(img, 0, 0);
      batch.draw(img2, 100, 0);
      batch.draw(img3,200,0);
      batch.end();
   }
   
   @Override   public void dispose () {
      batch.dispose();
      img.dispose();
      img2.dispose();
      img3.dispose();
   }
}

Guardamos, y ejecutamos el subproyecto desktop:

 También podemos correr el proyecto de "android", para ello tenemos que tener un dispositivo físico conectado a nuestro computador o algún emulador.
Listo ya tenemos nuestro ambiente listo para comenzar con la logica xD
En la siguiente entrega, haremos el juego entre pantallas de los juegos.
Codigo fuente aqui
Saludos

Si te gusta mi trabajo y el esfuerzo, pues puedes donar un $1, a esta causa xD

No hay comentarios.:

Publicar un comentario