Android Game 2 Java Programming tutorial

Hola soy Edu de Edu4Java y este es el tutorial número 2 sobre programación de juegos Android en este tutorial vamos a aprender a dibujar una imagen en un SurfaceView esta es una vista de bajo nivel lo cual nos da mucha flexibilidad y es muy eficiente que es importante para los juegos para que todo suceda rapido Voy a hacer este tutorial siguiendo un tutorial que tengo en mi sitio web edu4java.com para que si alguien se pierde en el camino aquí tiene la guía.

Creemos un nuevo proyecto de Android llamado killThemall-Training. KillThemall es el nombre que le di a la pequeña aplicación que estamos desarrollando este pequeño juego ok, aquí elijo el nombre del proyecto Aquí puedes elegir lo que quieras. Vamos a elegir el 8. Para el nombre de la aplicación le vamos a llamar Killthemall. Para el paquete vamos a poner esto. Aquí vamos a escribir Principal Y aquí 7… por compatibilidad. 7 es para 2.1. Con esto podemos seleccionar terminar y se genera el proyecto. Si has visto mis tutoriales en Android, sabes que se genera un main y también se genera un diseño, no vamos a usar este diseño porque queremos un control total de la aplicación. Vamos a interactuar directamente en la vista Esta vista en lugar de salir de un diseño la vamos a crear nosotros creamos un nuevo gameView creo que se llamaba…

Creamos la clase create GameView finish… tenemos para incluir los constructores podemos elegir… seleccionamos este.. estamos obligados a elegir uno por eso tenemos que poner esto… la vista necesita una referencia a la actividad. Aquí tenemos la referencia a la actividad que sería el Contexto. Ayudémonos con la página. En general, no tenemos que hacer nada más. En la Vista tenemos el contexto, vamos a crear un bmp un mapa de bits ehhh vamos a poner esto aquí crear un mapa de bits no tenemos el mapa de bits declarado así que primero importemos el otro.

Shift + ctrl + o para importar y este vamos a crear un campo allí es ctrl + s para guardar volvamos a la página porque ya olvidé lo que estábamos haciendo. Aquí creamos el mapa de bits después tenemos que anular un método llamado onDraw, este método se llamará shift+ctrl+o para la importación, este método se llamará automáticamente desde la vista, de hecho, no sé si es una vista o un soporte. Una vista está dentro de un soporte .

Es como un contenedor que este titular gestiona la vista. Le dice a la vista qué hacer. el titular de alguna manera ejecuta un código en la vista, dentro de la que extendemos y este código debe ejecutarse en Draw y aquí es donde podemos escribir en la aplicación. Este objeto de lienzo aquí es como la pizarra donde podemos escribir. Imagina que estuviéramos en la escuela y tuviéramos una pizarra y pudiéramos escribir con una tiza. Escribimos a través de muchos métodos de este lienzo. Aquí podemos ver que tiene mucho lo primero que hago es decirle que ponga el fondo negro y luego le digo que imprima el bitmap este ya lo había creado en la posición 10, 10 de este parámetro hablaremos nulo más adelante Cuando obtengo el mapa de bits, uso este método estático de BitmapFactory y le paso los recursos, que es principalmente un método de vista y este, si recuerdas de otros tutoriales, es un ícono que viene con la aplicación este ícono aquí este vamos a usar este para no complicar las cosas.

Más adelante usaremos otros vamos a ejecutar como aplicación de Android. Vas a tener que esperar pero ya lo tenia cargado Aqui esta. Como podéis ver se abrió y se imprimió. Este es el bar que no quería. Podemos sacarlo con la línea este en la actividad si agregamos esto aquí ctrl+shift+o para importar ctrl+s para guardar y ahora corremos de nuevo aquí va de nuevo ¿ Ves que desapareció? ok, hasta ahora hemos estado imprimiendo con una vista, probemos con un SurfaceView lo que tenemos que hacer es reemplazar esta vista con un SurfaceView si ejecutamos esto vamos a ver algo mal que la imagen no se imprime, debido a que SurfaceView es una clase de nivel inferior, todo el código del que hablábamos que hace la llamada a onDraw no lo tenemos ahora, tendremos que llamar al método nosotros mismos para llamar al método que necesitamos saber cuándo llamar it y también usamos el objeto canvas para llamarlo para hacer esto, primero debemos obtener el titular y luego hacer una devolución de llamada del titular aquí vamos a poner el titular.

Hay un método de titular en SurfaceView que nos da el titular. Vamos a crear un campo porque lo vamos a usar en el futuro y aquí vamos a incluir una llamada… vamos a registrar una… una clase que es va a ser un oyente de los eventos de la devolución de llamada del Titular. Pidamos ayuda… nos da la posibilidad de crear una clase anónima la cual implementa la interfaz SurfaceHolder.callback aquí hay un error porque tenemos que importar la interfaz esta aquí esta. Esta es una clase interna Esto es lo mismo que crear una nueva clase. La única diferencia es que todo está aquí por completo para que el objeto sea un oyente de SurfaceHolder, necesitamos ehh que la clase anónima implemente los métodos de devolución de llamada de la interfaz ehh, estos métodos son destruidos, lo que nos dirá cuándo se destruye la vista, cuando todo este terminado cuando se crea y cuando tiene un cambio lo que nos interesa ahora es este este este…

Este metodo se va a ejecutar cuando la lista este preparada para hacer impresiones en este metodo vamos para poner este codigo que lo que hace es preguntar al Holder (que viene como parametro) tambien lo tenemos como propiedad pero en este caso viene como parametro Pregunta al holder a traves del metodo lockCanvas. Este nulo no es necesario… pide el lienzo. ¿Por qué lockCanvas? este método crea un bloqueo en el lienzo. Lo reserva para que nadie más lo use cuando tenemos c, podemos llamar al método onDraw con el Canvas después de llamar al onDraw tenemos que decirle al Titular que lo desbloquee esto es importante porque los bloqueos funcionan en contra del rendimiento de la aplicación. es muy importante en los juegos porque estamos hablando de tiempo real, ejecutemos esto aquí viene. Ahora se imprime. Tuvimos que hacerlo a mano ok, esto es todo por este tutorial ¡ Los espero en el próximo!