¿Que es LibGDX?
LibGDX es un framework escrito en java y C/C++ para el desarrollo de videojuegos, es multiplataforma (Windows, Linux, Mac, Android, IOS, GWT) , permite programar aplicaciones para celulares con android como también juegos de escritorio, función útil cuando no se quiere probar el juego en el lento emulador de android.
Cuenta con módulos para interactuar con gráficos, sonidos, eventos de teclado y dispositivos táctiles, OpenGL ES 1.x y 2.0. Sistema 2D y pronto soporte 3D.
Hola mundo con LibGDX
LibGDX nos permite crear nuestro juego en un proyecto de escritorio y después migrarlo a Android, en el sitio oficial (en ingles) puedes ver un ejemplo de como trabajar de esta forma, sin embargo para salir de lo común, en este tutorial, crearemos nuestro infaltable «Hello World» directamente en una aplicación Android, necesitamos:
– Eclipse Indigo con Android instalado y configurado.
– LibGDX, descarga y descomprime en algún lugar de tu pc la versión Nightly Builds
– Si cuenta con la posibilidad, un celular inteligente conectado a tu pc, caso contrario, prepárese a sufrir con el emulador.
Nivel: Java intermedio, Android intermedio
Tiempo: 15 minutos
Proyecto Eclipse
1.Crea un nuevo Application Android Project con la siguiente configuración:
Application Name: LibGDXHello
Project Name: LibGDXHello
Package Name: com.bolivia.libgdxhello
Activity: Blank Activity
Activity Name: MainActivity.java
Layout Name: activity_main.xml
2. Ve al directorio donde tiene LibGDX y copia los siguientes archivos:
– gdx.jar
– gdx-backend-android.jar
– armeabi (carpeta y contenido)
– armeabi-v7a (carpeta y contenido)
y colócalos en la carpeta LIBS/ del proyecto
Clic derecho sobre el proyecto -> Refresh para actualizar el proyecto.
3. Clic derecho sobre el proyecto Build Path -> Configure Build Path... -> Pestaña LIBRARIES -> Add Jars
Busque las librerías gdx.jar y gdx–backend-android.jar en el proyecto, seleccione -> OK -> OK
4. Pintaremos una imagen a modo de «Hola Mundo» 🙂 perdone mi nacionalismo al usar mi tricolor, usted esta en la libertad de usar la imagen que desee, siempre y cuando esta sea múltiplo de 2. 🙂
La imagen se llama bandera.jpg, debe colocarla en la carpeta ASSETS
5. Crea una clase Hello.java en el paquete donde tenemos nuestro MainActivity.java.
Hasta este momento debemos tener esto en nuestro proyecto:
6. Vamos ahora con el código.
La clase Hello.java es nuestro juego en si, y se extiende ApplicationListener, entonces implementa una serie de métodos que los iremos viendo y explicando en futuros posts. Por el momento, hacemos uso de create() para iniciar los objetos y de render() para pintar la textura.
Hello.java
package com.bolivia.libgdxhello; import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; public class Hello implements ApplicationListener{ private SpriteBatch batch; private Texture texture; float alto; @Override public void create() { //obtiene alto de pantalla alto = Gdx.graphics.getHeight(); //para dibujar texturas se hace uso de SpriteBatch batch = new SpriteBatch(); //se carga la imagen de la carpeta ASSETS texture = new Texture( Gdx.files.internal("bandera.jpg")); } @Override public void dispose() { } @Override public void pause() { } @Override public void render() { //se limpia pantalla Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); //pinta textura batch.begin(); batch.draw(texture, 20, alto/2); batch.end(); } @Override public void resize(int arg0, int arg1) { } @Override public void resume() { } }
– Para implementar esta clase en nuestra clase MainActivity.java debemos cambiar el extends Activity por extends AndroidApplication.
A continuación dejo la MainActivity original y la modificada para que se estudie los cambios.
MainActivity Original
package com.bolivia.libgdxhello; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
MainActivity Modificado
package com.bolivia.libgdxhello; import com.badlogic.gdx.backends.android.AndroidApplication; import android.os.Bundle; public class MainActivity extends AndroidApplication { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initialize( new Hello(), false ); } }
7. Nuestro Hola Mundo esta listo, ejecuta y debes ver algo como esto:
Descarga el proyecto LibGDXHello en este enlace económico
Enjoy! 🙂
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
HeidiSQL es un software libre y de código abierto que permite conectarse a servidores MySQL, MariaDB, Percona Server, Mi...
En este post te enseñamos a utilizar SCRCPY, esta es un aplicación de duplicación de pantalla gratuita y de código abier...
Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la inter...
Hace un par de años atras google para el aniversario del juego de Pacman saco un doodle en su homenaje, ese doodle que s...
WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...
Online Flag Waver es una páginas web con la que podemos generar banderas ondeando con la textura que elijamos ya sea des...
Los comentarios estan cerrados
El gigante tecnologico Google a puesto un bonito Doodle en su buscador que esta fascinando a sus millones de usuarios qu...
WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...
Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...
TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de...
Buena Tarde, como puedo cerrar el gráfico desde el botón cerrar de la ventana sin cerrar la aplicación?
Toda la aplicación se realizó en un CategoryDataset (JFreeChart) en un JPanel.
He probado con:
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
————————————————————————————————————————
Graficos_Label_Inferior demo = new Graficos_Label_Inferior(title);
demo.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);