Usando andEngine desde emacs
Hoy estaba hechando un vistazo a la programación de juegos en android, una librería con buena pinta para hacerlo es AndEngine, los tutoriales que he encontrado para hacerlo son para Eclipse, pero después de intentarlo y acabar un par de veces con un segfault ¡importando un proyecto! toca volver a los clásicos, vamos a ver como hacerlo con emacs.
Instalar android-mode
Partimos de tener android-mode, para
instalarlo habrá que meterlo en el path, si queremos que sea global lo haremos
en /usr/share/emacs/site-lisp/ (para esto harán falta permisos de root), sino
tendremos que añadir el directorio al path con
1 | |
Después habrá que cargarlo y ajustar el path del SDK de android, en mi caso
está en /home/kenkeiras/.android-sdk/, así que...
1 2 | |
Estas cosas se pueden hacer en el buffer *Scratch* con lo que habría que
repetirlas cada vez que vayamos a usar el plugin, o escribirlas en el
archivo init.el
para que lo haga automáticamente al iniciarse, si quisieramos aplicar los
cambios al instante podríamos hacerlo pulsado C-x C-e (Control-x, Control-x)
al final de cada línea.
Crear un proyecto
Una vez que tengamos eso instalado habrá que crear un proyecto, para esto
desde emacs haremos M-x android-create-project (Alt-x android-create-project),
el plugin nos preguntará en que directorio ubicar el proyecto, el nombre que
se asignará al paquete, el de la actividad principal y un target. El target
es la versión de Android
para la que se “compilará” el código, pulsar tabulador dos veces probablemente
hará que muestre las opciones (no se si será cosa de emacs-live).
Y con esto ya tendríamos el proyecto creado, si hicieramos
1 | |
y
1 | |
construiría el proyecto y lo transferiría al dispositivo que se encuentre activo, y ya se puede lanzar.

Construyendo AndEngine
Para esto descargamos el proyecto en otro directorio, por ejemplo desde el repositorio
1 | |
Dentro del directorio creado crearemos un archivo local.properties
con la ubicación del SDK, en mi caso
1 | |
Hecho esto, se puede construir (teniendo en cuenta que la versión del API por
defecto es la 15,
esto se puede cambiar en project.properties).
1 | |
Producirá un archivo classes.jar en el directorio bin, que deberá ser
importado en el directorio libs de nuestro proyecto.
Código de ejemplo
Por último probaremos si funciona con algo tomado de Beggining andengine
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | |
No es gran cosa, pero funciona

(Sí, es una pantalla en verde :P)