<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wiki.cifprodolfoucha.es/index.php?action=history&amp;feed=atom&amp;title=LIBGDX_Analizando_o_proxecto_com%C3%BAn</id>
	<title>LIBGDX Analizando o proxecto común - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cifprodolfoucha.es/index.php?action=history&amp;feed=atom&amp;title=LIBGDX_Analizando_o_proxecto_com%C3%BAn"/>
	<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_Analizando_o_proxecto_com%C3%BAn&amp;action=history"/>
	<updated>2026-10-17T11:52:04Z</updated>
	<subtitle>Historial de revisiones de esta página en el wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_Analizando_o_proxecto_com%C3%BAn&amp;diff=382&amp;oldid=prev</id>
		<title>Wiki: Página creada con «&lt;span style=&quot;font-size:150%;&quot;&gt;UNIDADE 2: Analizando o proxecto común&lt;/span&gt;   ==Ciclo de vida do noso xogo== Como xa comentamos [http://informatica.iessanclemente.net/manu...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_Analizando_o_proxecto_com%C3%BAn&amp;diff=382&amp;oldid=prev"/>
		<updated>2015-12-08T20:20:52Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;UNIDADE 2: Analizando o proxecto común&amp;lt;/span&amp;gt;   ==Ciclo de vida do noso xogo== Como xa comentamos [http://informatica.iessanclemente.net/manu...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;UNIDADE 2: Analizando o proxecto común&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ciclo de vida do noso xogo==&lt;br /&gt;
Como xa comentamos [http://informatica.iessanclemente.net/manuais/index.php/LIGBDX_Explicacion_Framework#Proxectos_que_vai_xerar_o_framework_LIBGDX neste entrada], o framework vai xerar un proxecto para cada plataforma e un proxecto &amp;#039;común&amp;#039; o que van facer referencia todos eles.&lt;br /&gt;
&lt;br /&gt;
Este proxecto común é o &amp;#039;&amp;#039;&amp;#039;Xogo2D-Core&amp;#039;&amp;#039;&amp;#039;. É a clase que van facer uso todos os proxectos vai ser &amp;#039;&amp;#039;&amp;#039;MeuXogo.java&amp;#039;&amp;#039;&amp;#039; que é o nome que indicamos cando xeramos os proxectos coa [http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_Instalaci%C3%B3n_do_framework_LIBGDX#Xeraci.C3.B3n_dos_proxectos ferramenta gráfica].&lt;br /&gt;
&lt;br /&gt;
[[Imagen:LIBGDX_xogos2d_17.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veremos máis adiante que imos poder chamar a clases que deriven de &amp;#039;&amp;#039;&amp;#039;ApplicationAdapter&amp;#039;&amp;#039;&amp;#039; como no exemplo ou ben que deriven da clase &amp;#039;&amp;#039;&amp;#039;Game&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Imos analizar o código moi por enriba da clase xerada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;9&amp;quot; &amp;gt;&lt;br /&gt;
package com.plategaxogo2d.angel;&lt;br /&gt;
&lt;br /&gt;
import com.badlogic.gdx.ApplicationAdapter;&lt;br /&gt;
import com.badlogic.gdx.Gdx;&lt;br /&gt;
import com.badlogic.gdx.graphics.GL20;&lt;br /&gt;
import com.badlogic.gdx.graphics.Texture;&lt;br /&gt;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;&lt;br /&gt;
&lt;br /&gt;
public class MeuXogo extends ApplicationAdapter {&lt;br /&gt;
	SpriteBatch batch;&lt;br /&gt;
	Texture img;&lt;br /&gt;
	&lt;br /&gt;
	@Override&lt;br /&gt;
	public void create () {&lt;br /&gt;
		batch = new SpriteBatch();&lt;br /&gt;
		img = new Texture(&amp;quot;badlogic.jpg&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public void render () {&lt;br /&gt;
		Gdx.gl.glClearColor(1, 0, 0, 1);&lt;br /&gt;
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);&lt;br /&gt;
		batch.begin();&lt;br /&gt;
		batch.draw(img, 0, 0);&lt;br /&gt;
		batch.end();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*O primeiro (liña 9) é crear unha clase que derive da clase ApplicationAdapter. Ó facelo podemos sobrescribir os seguintes métodos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; enclose=&amp;quot;div&amp;quot; &amp;gt;&lt;br /&gt;
@Override&lt;br /&gt;
public void create() {&lt;br /&gt;
                     }               // Chamado cando se crea a instancia.&lt;br /&gt;
@Override&lt;br /&gt;
public void dispose() {&lt;br /&gt;
                      }              // Chamado cando se libera. Antes sempre se chama a pause.&lt;br /&gt;
@Override&lt;br /&gt;
public void render() {&lt;br /&gt;
                                     // Chamado continuamente para facer o render do xogo.&lt;br /&gt;
                     }               // Aquí tamén iría a lóxica do programa&lt;br /&gt;
@Override&lt;br /&gt;
public void resize(int width, int height) {&lt;br /&gt;
                                     // Chamado se cambia a resolución da pantalla (tamén se chama unha vez despois do create)&lt;br /&gt;
                     }&lt;br /&gt;
@Override&lt;br /&gt;
public void pause() {&lt;br /&gt;
                                     // Chamado ó saír da aplicación.&lt;br /&gt;
                    }                //  En Android cando se preme o boton Home ou ten unha chamada. Bo sitio para gardar o estado do xogo.&lt;br /&gt;
@Override&lt;br /&gt;
public void resume() {&lt;br /&gt;
                     }             // Chamado ó reanudar ó xogo (volvemos ó xogo en Android ou vimos de minimizar o xogo en PC)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Nota:&amp;lt;/b&amp;gt; O que vai facer o framework é chamar continuamente ó método render e o que faremos nese método será borrar toda a pantalla e voltar a debuxar todos os elementos do noso xogo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imos comprobar como se van chamar ós diferentes métodos durante o ciclo de vida do noso xogo.&lt;br /&gt;
Para velo imos usar un método que amosa na &amp;#039;&amp;#039;&amp;#039;ventá de log&amp;#039;&amp;#039;&amp;#039; do Eclipse os datos que lle pasemos.&lt;br /&gt;
&lt;br /&gt;
Creamos dentro do paquete onde se atopa a clase MeuXogo (com.plategaxogo2d.o_voso_nome) unha clase de nome Utiles.&lt;br /&gt;
&lt;br /&gt;
Dentro de dita clase definimos unha constante de clase cun valor que vai ser a etiqueta coa que identificaremos as mensaxes enviadas por nos ó Eclipse.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; enclose=&amp;quot;div&amp;quot; &amp;gt;&lt;br /&gt;
	private static final String LOG = &amp;quot;XOGO2D&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Despois definimos un método de clase o que se lle vai pasar o nome da clase dende onde se chama, o nome do método e a mensaxe a imprimir.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; enclose=&amp;quot;div&amp;quot; &amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Método para imprimir mensaxes de log no Eclipse.&lt;br /&gt;
	 * Usado para depuración (debugger)&lt;br /&gt;
	 * @param clase: nome da clase de onde se chama&lt;br /&gt;
	 * @param metodo: nome do método de onde se chama&lt;br /&gt;
	 * @param mensaxe: mensaxe a imprimir&lt;br /&gt;
	 */&lt;br /&gt;
	public static void imprimirLog(String clase, String metodo, String mensaxe){&lt;br /&gt;
		Gdx.app.log(LOG, clase + &amp;quot;:&amp;quot;+metodo+&amp;quot;:&amp;quot;+mensaxe);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora xa podemos sobrescribir os diferentes métodos e facer o log de cada un deles.&lt;br /&gt;
O faremos co método &amp;#039;&amp;#039;&amp;#039;create&amp;#039;&amp;#039;&amp;#039; que trae a clase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;b&amp;gt;Aviso:&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt; Non imprimir ningún log no método &amp;#039;&amp;#039;&amp;#039;render&amp;#039;&amp;#039;&amp;#039; xa que dito método é chamado de forma continua (de 25-80 veces por segundo) polo framework.&lt;br /&gt;
&lt;br /&gt;
O código completo quedaría así:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Codigo da clase Utiles&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
package com.plategaxogo2d.angel;&lt;br /&gt;
&lt;br /&gt;
import com.badlogic.gdx.Gdx;&lt;br /&gt;
&lt;br /&gt;
public class Utiles {&lt;br /&gt;
	private static final String LOG = &amp;quot;XOGO2D&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
     * Método para imprimir mensaxes de log no Eclipse.&lt;br /&gt;
     * Usado para depuración (debugger)&lt;br /&gt;
     * @param clase: nome da clase de onde se chama&lt;br /&gt;
     * @param metodo: nome do método de onde se chama&lt;br /&gt;
     * @param mensaxe: mensaxe a imprimir&lt;br /&gt;
     */&lt;br /&gt;
    public static void imprimirLog(String clase, String metodo, String mensaxe){&lt;br /&gt;
            Gdx.app.log(LOG, clase + &amp;quot;:&amp;quot;+metodo+&amp;quot;:&amp;quot;+mensaxe);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Codigo da clase MeuXogo&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;18&amp;quot; &amp;gt;&lt;br /&gt;
package com.plategaxogo2d.angel;&lt;br /&gt;
&lt;br /&gt;
import com.badlogic.gdx.ApplicationAdapter;&lt;br /&gt;
import com.badlogic.gdx.Gdx;&lt;br /&gt;
import com.badlogic.gdx.graphics.GL20;&lt;br /&gt;
import com.badlogic.gdx.graphics.Texture;&lt;br /&gt;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;&lt;br /&gt;
&lt;br /&gt;
public class MeuXogo extends ApplicationAdapter {&lt;br /&gt;
	SpriteBatch batch;&lt;br /&gt;
	Texture img;&lt;br /&gt;
   &lt;br /&gt;
	@Override&lt;br /&gt;
	public void create () {&lt;br /&gt;
		batch = new SpriteBatch();&lt;br /&gt;
		img = new Texture(&amp;quot;badlogic.jpg&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
		Utiles.imprimirLog(&amp;quot;MeuXogo&amp;quot;, &amp;quot;create&amp;quot;, &amp;quot;Angel&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public void render () {&lt;br /&gt;
		Gdx.gl.glClearColor(1, 0, 0, 1);&lt;br /&gt;
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);&lt;br /&gt;
		batch.begin();&lt;br /&gt;
		batch.draw(img, 0, 0);&lt;br /&gt;
		batch.end();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se executamos a versión Desktop e pechamos o xogo podemos comprobar como aparecen na ventá de consola as mensaxes postas (neste caso xa están sobrescritos os métodos indicados anteriormente menos o render):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imagen:LIBGDX_xogos2d_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;b&amp;gt;Nota:&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt; A ventá Console se pode amosar indo o menú de Eclipse Window =&amp;gt; Show View =&amp;gt; Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se o facemos na versión Android as mensaxes non aparece na ventá Console senón na ventá de &amp;#039;&amp;#039;LogCat&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;b&amp;gt;Nota:&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt; Dita ventá se atopa no menú de Eclipse Window =&amp;gt; Show View =&amp;gt; Other e escoller a opción &amp;#039;&amp;#039;LogCat&amp;#039;&amp;#039; como se va na seguinte imaxe:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Ciclo de vida nun dispositivo móbil&amp;quot; widths=&amp;quot;350&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Image:LIBGDX_xogos2d_20.jpg| O entrar e saír do xogo aparecen os métodos descritos anteriormente. Para saír do xogo debemos de premer a tecla &amp;#039;&amp;#039;Back&amp;#039;&amp;#039; do dispositivo.&lt;br /&gt;
Image:LIBGDX_xogos2d_20_B.jpg| Podemos agora filtrar as mensaxes creando un novo filtro, premendo na parte esquerda no símbolo + (cor verde).&lt;br /&gt;
 Image:LIBGDX_xogos2d_21.jpg| Os datos se filtran en base o Tag que se corresponde có valor da propiedade LOG.&lt;br /&gt;
Image:LIBGDX_xogos2d_22.jpg| Vemos agora só os eventos do noso xogo.&lt;br /&gt;
Image:LIBGDX_xogos2d_23.jpg| Se en vez de premer a tecla Back prememos a tecla &amp;#039;&amp;#039;Casa&amp;#039;&amp;#039; no emulador ou cambiamos de aplicación nun dispositivo real.&lt;br /&gt;
Image:LIBGDX_xogos2d_24.jpg| Podemos observar como non executa o método dispose. Ó voltar a executar o xogo pasa polo método resume.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA 2.0 A FACER:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á realización dunha tarefa.  &lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
==Utilidade FPS==&lt;br /&gt;
Outra utilidade que imos ter para desenvolver os nosos xogos é comprobar a que velocidade&lt;br /&gt;
([http://es.wikipedia.org/wiki/Im%C3%A1genes_por_segundo fotogramas por segundo = fps]) ó que se executa o noso xogo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Definimos a propiedade fps na clase Xogo2D-core:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;10,15-24,28&amp;quot; &amp;gt;&lt;br /&gt;
private FPSLogger fps;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Nota:&amp;lt;/u&amp;gt; Ó poñer dita liña dará un erro xa que a clase FPSLogger non está importada. Premer a combinación de teclas Ctrol+Shift+O para importalo automaticamente.&lt;br /&gt;
&lt;br /&gt;
Modificamos os métodos &amp;#039;&amp;#039;&amp;#039;create&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;render&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;10,15-24,28&amp;quot; &amp;gt;&lt;br /&gt;
@Override&lt;br /&gt;
public void create() {&lt;br /&gt;
  fps = new FPSLogger();&lt;br /&gt;
.............&lt;br /&gt;
@Override&lt;br /&gt;
public void render() {&lt;br /&gt;
  fps.log();&lt;br /&gt;
..............&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos ver na lapela de &amp;#039;&amp;#039;&amp;#039;Console&amp;#039;&amp;#039;&amp;#039; se estamos a executar a versión Desktop os fotogramas por segundo.&lt;br /&gt;
&lt;br /&gt;
[[Imagen:LIBGDX_xogos2d_19.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A velocidade para ter un xogo &amp;#039;xogable&amp;#039; &amp;lt;u&amp;gt;vai depender do tipo de xogo&amp;lt;/u&amp;gt;, aínda que con 25fps debería chegar, pero dependerá do tipo de xogo e da persoa. &lt;br /&gt;
&lt;br /&gt;
Podemos consultar nesta dirección http://www.tweakguides.com/Graphics_5.html máis información sobre os fps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2015).&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
		
	</entry>
</feed>