<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=LIBGDX_Tarefas_entregar_Unidade_2</id>
	<title>LIBGDX Tarefas entregar Unidade 2 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=LIBGDX_Tarefas_entregar_Unidade_2"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=LIBGDX_Tarefas_entregar_Unidade_2&amp;action=history"/>
	<updated>2026-10-23T23:03:50Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=LIBGDX_Tarefas_entregar_Unidade_2&amp;diff=53721&amp;oldid=prev</id>
		<title>Angelfg: /* Tarefa 2.14 */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=LIBGDX_Tarefas_entregar_Unidade_2&amp;diff=53721&amp;oldid=prev"/>
		<updated>2015-03-04T15:38:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Tarefa 2.14&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==UNIDADE 2==&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.0===&lt;br /&gt;
[http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_Analizando_o_proxecto_com%C3%BAn#Ciclo_de_vida_do_noso_xogo ENLACE A MIRAR].&lt;br /&gt;
&lt;br /&gt;
Captura unha pantalla onde aparezan os diferentes eventos polos que pasa o voso xogo imprimindo o voso nome e indicando o evento, tal como está nos apuntes.&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.1===&lt;br /&gt;
&lt;br /&gt;
====Apartado A)====&lt;br /&gt;
[http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_Co%C3%B1ecendo_a_estrutura_dos_proxectos#Versi.C3.B3n_Desktop ENLACE A MIRAR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Imos descargar unha icona calquera [http://www.iconarchive.com/commercialfree.html desta web] e o imos gardar no cartafol assets do proxecto Android, có nome &amp;#039;xogo.png&amp;#039;.&lt;br /&gt;
:O tamaño que temos que escoller dependerá da plataforma: 128x128 (para Mac), 32x32 (para Windows e Linux), e 16x16 (para Windows). Nos imos a escoller o da resolución 32x32. Asociar dita icona ó voso xogo.&lt;br /&gt;
*Fai que non se poida cambiar o tamaño da xanela na versión Desktop.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Apartado B)====&lt;br /&gt;
&lt;br /&gt;
[http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_Co%C3%B1ecendo_a_estrutura_dos_proxectos#Versi.C3.B3n_M.C3.B3bil ENLACE A MIRAR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fai que o xogo na versión Móbil apareza en orientación portrait (non apaisada).&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.2===&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php/LIBGDX_Co%C3%B1ecendo_a_estrutura_dos_proxectos ENLACE A MIRAR].&lt;br /&gt;
&lt;br /&gt;
Mirando as seguintes imaxes: &lt;br /&gt;
&lt;br /&gt;
[[Imagen:LIBGDX_xogos2d_tarefa_2_1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[Imagen:LIBGDX_xogos2d_tarefa_2_2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observando os gráficos anteriores modifica a versión Desktop para que lance o xogo coas dimensións do dispositivo móbil que teña máis cuota (% por tamaño de pantalla, como amosa o segundo gráfico).&lt;br /&gt;
&lt;br /&gt;
Faino como segundo vimos [http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_Co%C3%B1ecendo_a_estrutura_dos_proxectos#Versi.C3.B3n_Desktop neste punto].&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.3===&lt;br /&gt;
&lt;br /&gt;
*[http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_A_c%C3%A1mara_2D#A_c.C3.A1mara_2D Enlace cámara]: Necesario ler puntos 1.1,1.2,1.3. Posteriormente será necesario ler o punto 1.6.&lt;br /&gt;
*[http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_Os_graficos Enlace ós gráficos]: Necesario ler os puntos 1,2,3,4,5,6.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dados os seguintes gráficos engádeos ó cartafol assets/GRAFICOS da plataforma Android e carga ditos gráficos no método cargarTexturas e libera ditas texturas no método liberarTexturas da clase AssetsXogo. O nome das variables que referencian a cada textura está entre os parénteses.&lt;br /&gt;
&lt;br /&gt;
Podedes descargar todos os gráficos nun único arquivo: [[Media:LIBGDX_itinerario1_alien.zip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Imaxes a descargar para a tarefa 2.3&amp;quot; widths=&amp;quot;200&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:LIBGDX_itin1_alien.png| LIBGDX_itin1_alien.png (textureAlien).&lt;br /&gt;
Image:LIBGDX_itin1_alien_dead.png| LIBGDX_itin1_alien_dead.png (textureAlienDead).&lt;br /&gt;
Image:LIBGDX_itin1_alien_rescue.png| LIBGDX_itin1_alien_rescue.png (textureAlienRescue).&lt;br /&gt;
Image:LIBGDX_itin1_autobus1.png| LIBGDX_itin1_autobus1.png (textureAutobus).&lt;br /&gt;
Image:LIBGDX_itin1_coche1.png| LIBGDX_itin1_coche1.png (textureCoche).&lt;br /&gt;
Image:LIBGDX_itin1_fondoxogo.jpg| LIBGDX_itin1_fondoxogo.jpg (textureFondo).&lt;br /&gt;
Image:LIBGDX_itin1_nave.png| LIBGDX_itin1_nave.png (textureNave).&lt;br /&gt;
Image:LIBGDX_itin1_roca.png| LIBGDX_itin1_roca.png (textureRoca).&lt;br /&gt;
Image:LIBGDX_itin1_tronco.jpg| LIBGDX_itin1_tronco.jpg (textureTronco).&lt;br /&gt;
Image:LIBGDX_puntonegro.jpg| LIBGDX_puntonegro.jpg (texturePuntoNegro).&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.4===&lt;br /&gt;
[http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_Movendo_os_graficos#Creando_as_clases_dos_personaxes ENLACE A MIRAR]&lt;br /&gt;
*Crea unha nova clase de nome Nave que derive da clase Personaxe. Lembra crear o constructor como no exemplo do manual.&lt;br /&gt;
*Instancia e crea un obxecto da clase Nave na clase Mundo.&lt;br /&gt;
::Os valores iniciais para a nave son:&lt;br /&gt;
:::Posición:(0,480)&lt;br /&gt;
:::Tamaño:(40,20)&lt;br /&gt;
:::Velocidade:60&lt;br /&gt;
*Crea método para debuxala de nome &amp;#039;&amp;#039;&amp;#039;debuxarNave()&amp;#039;&amp;#039;&amp;#039; na clase RendererXogo.&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.5===&lt;br /&gt;
[http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_Movendo_os_graficos#Movendo_os_gr.C3.A1ficos._O_par.C3.A1metro_delta ENLACE A MIRAR].&lt;br /&gt;
&lt;br /&gt;
Modifica a velocidade do Alien cando creas o obxecto na clase Mundo para que teña unha velocidade máxima que lle permita percorrer o ancho do seu mundo en 3 segundos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.6===&lt;br /&gt;
[http://informatica.iessanclemente.net/manuais/index.php/LIBGDX_Creando_o_mundo ENLACE A MIRAR].&lt;br /&gt;
&lt;br /&gt;
Seguindo o mesmo exemplo que os coches fai que as rochas aparezan no xogo. O número de rochas queda á vosa elección. O tamano de cada rocha é de 60x60 unidades.&lt;br /&gt;
&lt;br /&gt;
Os pasos a seguir serán:&lt;br /&gt;
&lt;br /&gt;
* Definir o array de rochas e engadilas na clase Mundo.&lt;br /&gt;
* Debuxar as rochas na clase RendererXogo.&lt;br /&gt;
* Controlar as rochas e actualizar a súa posición na clase ControladorXogo.&lt;br /&gt;
&lt;br /&gt;
[[LIBGDX_tarefa_2_6_Alternativa | Unha posible alternativa á solución proposta.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.7===&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_As_interfaces_para_capturar_eventos ENLACE A MIRAR].&lt;br /&gt;
&lt;br /&gt;
Informar á clase controladora cando o xogador libera a tecla (&amp;#039;&amp;#039;&amp;#039;método keyUp&amp;#039;&amp;#039;&amp;#039;), chamando ó método liberarTecla.&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.8===&lt;br /&gt;
&lt;br /&gt;
====Tarefa 2.8.A====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA OPTATIVA DE FACER&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_As_interfaces_para_capturar_eventos ENLACE A MIRAR: interfaces para capturar eventos].&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_A_c%C3%A1mara_2D#Proxectando_os_puntos ENLACE A MIRAR: facer un unproyect].&lt;br /&gt;
&lt;br /&gt;
Tarefas a realizar:&lt;br /&gt;
&lt;br /&gt;
O que temos que facer será poñer un gráfico formado por catro frechas que vai ser utilizado para mover o noso Alien. Debemos de facer o unProyect e ver sobre que frecha estamos a premer para mover o Alien.&lt;br /&gt;
&lt;br /&gt;
* Crear un cartafol de nome &amp;#039;&amp;#039;&amp;#039;CONTROIS&amp;#039;&amp;#039;&amp;#039; dentro do cartafol /assets/GRAFICOS/ da versión android.&lt;br /&gt;
&lt;br /&gt;
[[Imagen:LIBGDX_xogos2d_tarefa_2_8.jpg | center | 300px]]&lt;br /&gt;
&lt;br /&gt;
* Subir o seguinte gráfico a dito cartafol CONTROIS e cargar nunha textura de nome &amp;#039;&amp;#039;&amp;#039;control&amp;#039;&amp;#039;&amp;#039; dito gráfico.&lt;br /&gt;
[[Imagen:LIBGDX_itin1_controis.png | center | 300px]]&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;Calquera alumno é libre de crear un control diferente ou dividir o control en dous e poñer unha parte a dereita (arriba-abaixo) e outra a esquerda (esquerda-dereita). Tedes total liberdade.&lt;br /&gt;
&lt;br /&gt;
* Definir o tamaño que ten dito control na &amp;#039;&amp;#039;&amp;#039;clase Controis&amp;#039;&amp;#039;&amp;#039; (copiade o código seguinte).&lt;br /&gt;
Para isto definimos unha variable de [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Anexo_tipos_de_datos#Rectangle tipo Rectangle] que permite gardar catro valores (x,y,width,height).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
   public final static Rectangle CONTROL = new Rectangle(10,40,50,70);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Debuxar o control na clase RendererXogo no método debuxarControis tomando como valores os definidos no rectángulo.&lt;br /&gt;
&lt;br /&gt;
:Podedes facer que dito gráfico só se debuxe na versión móbil poñendo esta condicion:&lt;br /&gt;
:: if (Gdx.app.getType()==ApplicationType.Android) .....&lt;br /&gt;
&lt;br /&gt;
* Para facer o seguinte punto ([http://manuais.iessanclemente.net/index.php?title=LIBGDX_A_c%C3%A1mara_2D#Proxectando_os_puntos facer un unproyect]) temos que poder acceder á cámara orthográfica dende a clase PantallaXogo. Podemos definila como static ou crear un método que nos devolva a cámara:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Código da clase RendererXogo&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Obxectivo:&amp;#039;&amp;#039;&amp;#039; definimos un método que devolva a cámara 2D. Usado pola clase PantallaXogo para facer o unProyect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
	public OrthographicCamera getCamara2d(){&lt;br /&gt;
		return camara2d;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Na clase PantallaXogo, no método touchdown, facer o unProyect cando pulsemos sobre a pantalla.&lt;br /&gt;
Facer un log indicando a posición premida en pixeles e en unidades do voso mundo.&lt;br /&gt;
&lt;br /&gt;
====Tarefa 2.8.B====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA OPTATIVA DE FACER&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_As_colisions ENLACE A MIRAR: As colisións]. &lt;br /&gt;
&lt;br /&gt;
* Verificar se prememos algunha parte do control do Alien, chamando o método pulsarTecla correspondente da clase ControladorXogo tal cal está feito no método keydown. &amp;#039;&amp;#039;&amp;#039;Lembrar liberar a pulsación da tecla no método touchup&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Estas son as coordenadas para crear un rectángulo con cada un das partes do control de movemento (a imaxe anterior):&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Frecha esquerda:&amp;#039;&amp;#039;&amp;#039; Controis.CONTROL.x,Controis.CONTROL.y+Controis.CONTROL.height/3,Controis.CONTROL.width/2,Controis.CONTROL.height/3&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Frecha dereita:&amp;#039;&amp;#039;&amp;#039; Controis.CONTROL.x+Controis.CONTROL.width/2,Controis.CONTROL.y+Controis.CONTROL.height/3,Controis.CONTROL.width/2,Controis.CONTROL.height/3&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Frecha arriba:&amp;#039;&amp;#039;&amp;#039; Controis.CONTROL.x,Controis.CONTROL.y+Controis.CONTROL.height*2/3,Controis.CONTROL.width,Controis.CONTROL.height/3&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Frecha abaixo:&amp;#039;&amp;#039;&amp;#039; Controis.CONTROL.x,Controis.CONTROL.y,Controis.CONTROL.width,Controis.CONTROL.height/3&lt;br /&gt;
&lt;br /&gt;
A idea é crear na clase &amp;#039;&amp;#039;&amp;#039;clase Controis&amp;#039;&amp;#039;&amp;#039; un rectángulo para cada frecha e asinarlle as posicións anteriores. Despois comprobaredes en cada un dos if´s se se intersecciona o rectángulo có círculo que representa o dedo premendo a pantalla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Método touchDown&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
:*Pasar as coordenadas reais (en pixeles) a coordenadas do noso mundo (está feito da tarefa anterior 2.8.A).&lt;br /&gt;
&lt;br /&gt;
:*[http://manuais.iessanclemente.net/index.php?title=LIBGDX_Anexo_tipos_de_datos#Circle Crear un círculo] coas coordenadas do dedo na pantalla. A clase círculo espera recibir tres parámetros (x,y,radio). O radio do círculo pode ser de 2 unidades. A coordenada x,y é a coordenada calculada na tarefa 2.8.A que indica a posición premida no sistema de coordenadas da cámara.&lt;br /&gt;
&lt;br /&gt;
:*Comprobar utilizando a clase Intersector se o Circle intersecciona con cada un dos rectángulos que representan as frechas e que están definidos na clase Controis. &lt;br /&gt;
&lt;br /&gt;
::: if (Intersecciona frecha esquerda con dedo) entón&lt;br /&gt;
:::: controladorXogo.pulsarTecla(ControladorXogo.Keys.ESQUERDA);&lt;br /&gt;
&lt;br /&gt;
::e así por cada frecha.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Método touchUp&amp;#039;&amp;#039;&amp;#039;: liberar a tecla correspondente chamando ó método liberarTecla da clase Controladora dependendo da frecha liberada.&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.9===&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_As_colisions ENLACE A MIRAR: As colisións].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tarefa a realizar:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fai que cando o alien toque á nave se inicialice e se engada unha vida de tipo SALVADO ó array de vidas.&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.10===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_A_c%C3%A1mara_2D#Proxectando_os_puntos ENLACE A MIRAR: Facer un unproyect].&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_As_colisions ENLACE A MIRAR: As colisións].&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_Cambiando_de_pantalla ENLACE A MIRAR: Cambiando as pantallas].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tarefa a realizar:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fai que, na pantalla de presentación (a que ten os botóns de Novo Xogo, Marcadores e Saír), en función do botón premido, cambiemos de pantalla ou saiamos. Se estamos na pantalla de Marcadores e prememos na pantalla deberemos volver á pantalla de presentación.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;b&amp;gt;Pistas:&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
*Cada unha das opcións se pode calcular en que punto están facendo unha regra de tres. Así se a opción Saír se atopa no punto (160,320) (esquina inferior esquerda) nun tamaño de (480,800) píxeles e o noso mundo ten (300,500) unidades podemos concluír que o punto (160,320) = (100,200)&lt;br /&gt;
: 160-------------------480&lt;br /&gt;
: x --------------------300  =======&amp;gt; x = (300*160)/480 = 100&lt;br /&gt;
&lt;br /&gt;
:Para non teres que facer estas operacións xa vos dou as coordenadas de cada botón nun array de Rectangles:&lt;br /&gt;
::private Rectangle botons[]={new Rectangle(100, 268, 98, 32),new Rectangle(100, 235, 98, 32),new Rectangle(100, 200, 98, 32)};&lt;br /&gt;
&lt;br /&gt;
*Para saír da aplicación temos que chamar ó método &amp;#039;&amp;#039;&amp;#039;Gdx.app.exit()&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*O proceso para controlar cando tocamos cada opción sería:&lt;br /&gt;
&lt;br /&gt;
: Ir ó método touchdown.&lt;br /&gt;
: Obter as coordenadas do noso mundo cando prememos sobre a pantalla:&lt;br /&gt;
::		Vector3 temp = new Vector3(screenX,screenY,0); 	// Para optimizar poderiase instanciar unha vez no constructor.&lt;br /&gt;
::		camara2d.unproject(temp);&lt;br /&gt;
::		Circle dedo = new Circle(temp.x,temp.y,2); 		// Para optimizar poderiase instanciar unha vez no constructor.&lt;br /&gt;
&lt;br /&gt;
: Comprobar se tocamos algún dos botóns:&lt;br /&gt;
::	if (Intersector.overlaps(dedo,botons[0]))	{	// Prememos novo xogo &lt;br /&gt;
::      }&lt;br /&gt;
&lt;br /&gt;
: No caso de tocar, liberamos os gráficos e/ou recursos (no caso da PantallaPresentacion non é necesario) e cambiamos de pantalla:&lt;br /&gt;
::			dispose();&lt;br /&gt;
::			meuxogogame.setScreen(new PantallaXogo(meuxogogame));&lt;br /&gt;
*Lembrar chamar ó método dispose para liberar a textura e o spritebatch na clase PantallaMarcadores.&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.11===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA OPTATIVA DE FACER&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_Cambiando_de_pantalla ENLACE A MIRAR: Cambiando as pantallas].&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_Fontes ENLACE A MIRAR: Fontes.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imos engadir un tempo ó noso xogo, de tal forma que ó rematar iremos á pantalla de marcadores.&lt;br /&gt;
&lt;br /&gt;
Tarefas a facer:&lt;br /&gt;
&lt;br /&gt;
* Modificar a clase RendererXogo para que visualice o cronómetro. Para obter a referencia ó crono lembra utilizar meuMundo.getCronometro(). NON CRES UN CRONOMETRO NOVO. &lt;br /&gt;
:Utiliza a clase StringBuilder para visualizar o texto.&lt;br /&gt;
: A posición do crono debe ser abaixo á esquerda.&lt;br /&gt;
* Fai que cando o cronómetro chegue a 0 remate o xogo e cambie á pantalla PantallaMarcadores (igual que cando leva máis de 15 vidas).&lt;br /&gt;
* Escribe o texto &amp;#039;&amp;#039;&amp;#039;ESCAPE DOS ALIEN&amp;#039;&amp;#039;&amp;#039; na parte superior da PantallaMarcadores.&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.12===&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_Musica_son ENLACE A MIRAR: Música e efectos de son].&lt;br /&gt;
&lt;br /&gt;
Imos facer que se escoite unha música de fondo no xogo e a engadir diferentes efectos de son.&lt;br /&gt;
&lt;br /&gt;
Para facelo imos crear un cartafol novo dentro de assets, de nome MUSICA, onde imos copiar todos os arquivos de audio.&lt;br /&gt;
&lt;br /&gt;
* Música:&lt;br /&gt;
:* De fondo: [[Media:LIBGDX_grapes_I_dunno_m.mp3]]&lt;br /&gt;
::Facer que teña un volume a metade do máximo e que se repita (non deixe de tocar).&lt;br /&gt;
:* Cando esteamos no xogo: [[Media:LIBGDX_ocean_sounds.mp3]]&lt;br /&gt;
::Facer que teña un volume a 0.1f e que se repita (non deixe de tocar).&lt;br /&gt;
&lt;br /&gt;
Efectos de son:&lt;br /&gt;
* Cando o alien morra se escoite: [[Media:LIBGDX_morte.mp3]]&lt;br /&gt;
* Cando o alien chegue á nave: [[Media:LIBGDX_transporter_sfx.mp3]]&lt;br /&gt;
&lt;br /&gt;
O que temos que facer é:&lt;br /&gt;
&lt;br /&gt;
* Crear unha clase de nome Audio, no paquete principal, onde se van cargar os arquivos multimedia anteriores.&lt;br /&gt;
* As variables a crear (que fagan referencia ós arquivos multimedia) serán public - static.&lt;br /&gt;
* Crea, na clase Audio, un método inicializarMusica de tipo public-static que cargue os arquivos multimedia. Chamao dende a clase MeuXogoGame, método create. &lt;br /&gt;
* Crea, na clase Audio, un método dispose que libere os recursos de audio. Chámao cando saiamos do xogo (método dispose da clase MeuXogoGame).&lt;br /&gt;
* Facer que na pantalla principal soe a música (deixade tocando para que continúe por todas as pantallas). Faino no constructor da clase PantallaPresentacion.&lt;br /&gt;
* Facer que cando esteamos na pantalla de pause a música pare e cando volvamos ó xogo a música continúe.&lt;br /&gt;
: Lembrade que podemos facer pausa cambiando de aplicación (Android) ou minimizando (Desktop). Nese intre imos ó método pause-resume da clase. Pero tamén podemos facer pausa premendo o botón de pausa.&lt;br /&gt;
* Facer que a música do mar (LIBGDX_ocean_sounds.mp3) soe cando esteamos no xogo e pare ó saír (métodos show / hide da clase PantallaXogo).&lt;br /&gt;
* Facer que cando o alien morra soe o efecto de son: LIBGDX_morte.mp3.&lt;br /&gt;
* Facer que cando o alien suba á nave soe o efecto de son: LIBGDX_transporter_sfx.mp3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subide tamén ó cartafol MUSICA estes tres efectos de son que son utilizados [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Musica_son#Efectos_de_son_aleatorios neste punto].&lt;br /&gt;
* Claxon1: [[Media:LIBGDX_claxon.mp3]]&lt;br /&gt;
* Claxon2: [[Media:LIBGDX_claxon2.mp3]]&lt;br /&gt;
* Claxon3: [[Media:LIBGDX_claxon3.mp3]]&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.13===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA OPTATIVA DE FACER&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_A_c%C3%A1mara_2D#Proxectando_os_puntos ENLACE A MIRAR: Facer un unproyect].&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_As_colisions ENLACE A MIRAR: As colisións].&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_Gardando_datos.#Preferencias ENLACE A MIRAR: Preferencias].&lt;br /&gt;
&lt;br /&gt;
Imos gardar en forma de preferencias a opción de escoitar música de fondo no noso xogo. A idea é ter un gráfico na pantalla de presentación que indique cando queremos que se escoite a música no xogo.&lt;br /&gt;
&lt;br /&gt;
*Descargade estes dous arquivos e engadídeos ó cartafol assets/CONTROIS do proxecto Android.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Imaxes a descargar para a tarefa 2.13&amp;quot; widths=&amp;quot;100&amp;quot; heights=&amp;quot;100px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:LIBGDX_iconmusicaon.png| LIBGDX_iconmusicaon.png (textureMusicaOn).&lt;br /&gt;
Image:LIBGDX_iconmusicaoff.png| LIBGDX_iconmusicaoff.png (textureMusicaOff).&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pistas:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Cargade ditos gráficos na clase AssetsXogo (e lembrade liberar a memoria).&lt;br /&gt;
&lt;br /&gt;
*Debuxade os gráficos na clase PantallaPresentacion. Podedes definir o seu tamaño e posición con estes datos.&lt;br /&gt;
::	private Rectangle controlMusica = new Rectangle(10,10,50,50);&lt;br /&gt;
&lt;br /&gt;
*Para controlar o estado (musica on /off) utilizade unha variable booleana que garde o valor da preferencia gardada. Podedes facelo no constructor.&lt;br /&gt;
&lt;br /&gt;
*No método render da clase PantallaPresentacion debuxade a texture correspondente en función do valor da variable anterior.&lt;br /&gt;
&lt;br /&gt;
*No método touchDown facer un unProyect e se se pulsa a icona de música cambiade o estado da variable booleana. Podedes gardar o valor da nova preferencia.&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.14===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA OPTATIVA DE FACER&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_Gardando_datos.#Datos ENLACE A MIRAR: Datos].&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_Fontes ENLACE A MIRAR: Fontes.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Implementando a pantalla de Marcadores utilizando arquivos.&lt;br /&gt;
&lt;br /&gt;
Partindo do [http://manuais.iessanclemente.net/index.php/LIBGDX_Cambiando_de_pantalla código xa visto da pantalla Presentación] (código que aparece ó principio do punto sinalado) imos darlle unha funcionalidade á pantalla de Marcadores.&lt;br /&gt;
&lt;br /&gt;
A diferenza con respecto á pantalla de presentación é que non imos ter una gráfico que ocupe toda a pantalla (como no caso da pantalla de presentación) se non que imos escribir un texto. Polo tanto, do código da pantalla de presentación teremos que quitar:&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;&amp;quot; &amp;gt;&lt;br /&gt;
 spritebatch.disableBlending();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
e&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;&amp;quot; &amp;gt;&lt;br /&gt;
spritebatch.draw(fondo,0,0,Mundo.TAMANO_MUNDO_ANCHO,Mundo.TAMANO_MUNDO_ALTO);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta tarefa vai consistir en gardar os tres mellores xogadores e visualizalos na pantalla de Marcadores.&lt;br /&gt;
&lt;br /&gt;
O criterio vai ser aquel que salve a maior cantidade de alien´s.&lt;br /&gt;
&lt;br /&gt;
Imos gardar as tres mellores puntuacións. &lt;br /&gt;
&lt;br /&gt;
Isto o faremos no momento que se remate o xogo (acabe o tempo) e pasemos á pantalla PantallaMarcadores.&lt;br /&gt;
&lt;br /&gt;
Aproveitaremos o código para que cando entremos en dita pantalla (tanto dende a PantallaPrincipal, como cando rematamos o xogo) para amosar as mellores puntuacións.&lt;br /&gt;
&lt;br /&gt;
Unha posible forma de facelo (tedes liberdade para implementalo como queirades):&lt;br /&gt;
&lt;br /&gt;
* Crear unha clase de nome HighScores. En dita clase definiremos:&lt;br /&gt;
:* O array de Strings (3 valores, por defecto a &amp;quot;0&amp;quot;).&lt;br /&gt;
::public static String[] highscores = { &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot; };&lt;br /&gt;
:* O nome do arquivo onde gardar os datos dos highscores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:* Método public static void load(): carga as puntuacións no array anterior. Utilizado pola pantalla PantallaPuntuacion cando se amose.&lt;br /&gt;
:: Como no arquivo temos gardado o array de cadeas desta forma (un exemplo): &amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;1&amp;quot; teremos que ler e converter os datos lidos a un array. Para facelo podemos usar o método split. Tedes un exemplo de uso [http://java-spain.com/manejo-cadenas-java-metodos-split-indexof-substring-y-trim neste enlace].&lt;br /&gt;
&lt;br /&gt;
:* Método public static engadirPuntuacion(int puntuacion): pasamos a nova puntuación dende a pantalla PantallaXogo no momento que se acabe o xogo.&lt;br /&gt;
::Este método comproba que os datos gardados teñan un valor menor que o novo valor enviado. En caso contrario substitúe un polo novo valor e o garda a disco.&lt;br /&gt;
&lt;br /&gt;
:* Método private static void save(): chamado dende o método engadirPuntuacion cando rematemos. Engade cada un dos datos do array &amp;#039;&amp;#039;&amp;#039;separados por comas&amp;#039;&amp;#039;&amp;#039;. Lembrar que para engadir temos que chamar ó método writeString co dato e o valor true como segundo parámetro.&lt;br /&gt;
&lt;br /&gt;
===Tarefa 2.15===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://manuais.iessanclemente.net/index.php?title=LIBGDX_Empaquetado_distribuci%C3%B3n. ENLACE A MIRAR: Empaquetado e distribución].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta tarefa vai consistir en xerar o jar e o apk (non ten por que estar firmado) do voso xogo.&lt;/div&gt;</summary>
		<author><name>Angelfg</name></author>
	</entry>
</feed>