<?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_As_interfaces_para_capturar_eventos</id>
	<title>LIBGDX As interfaces para capturar eventos - 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_As_interfaces_para_capturar_eventos"/>
	<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_As_interfaces_para_capturar_eventos&amp;action=history"/>
	<updated>2026-10-17T03:38:13Z</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_As_interfaces_para_capturar_eventos&amp;diff=497&amp;oldid=prev</id>
		<title>Wiki: /* Tarefas avanzadas */</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_As_interfaces_para_capturar_eventos&amp;diff=497&amp;oldid=prev"/>
		<updated>2015-12-11T17:27:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Tarefas avanzadas&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 17:27 11 dic 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l474&quot; &gt;Línea 474:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 474:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;TAREFA AVANZADA OPTATIVA:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á [http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;manuais&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;iessanclemente&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;net&lt;/del&gt;/index.php?title=LIBGDX_TouchPad realización dunha tarefa avanzada: TochPad (joystick)].&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;TAREFA AVANZADA OPTATIVA:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á [http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mediawiki&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;cifprodolfoucha&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;es&lt;/ins&gt;/index.php?title=LIBGDX_TouchPad realización dunha tarefa avanzada: TochPad (joystick)].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wiki</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_As_interfaces_para_capturar_eventos&amp;diff=489&amp;oldid=prev</id>
		<title>Wiki: /* Tarefas avanzadas */</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_As_interfaces_para_capturar_eventos&amp;diff=489&amp;oldid=prev"/>
		<updated>2015-12-11T17:15:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Tarefas avanzadas&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 17:15 11 dic 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l466&quot; &gt;Línea 466:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 466:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;TAREFA AVANZADA OPTATIVA:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á [http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;manuais&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;iessanclemente&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;net&lt;/del&gt;/index.php?title=LIBGDX_Acelerometro#Exemplo_de_c.C3.B3digo realización dunha tarefa avanzada: Acelerómetro/Compás].&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;TAREFA AVANZADA OPTATIVA:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á [http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mediawiki&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;cifprodolfoucha&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;es&lt;/ins&gt;/index.php?title=LIBGDX_Acelerometro#Exemplo_de_c.C3.B3digo realización dunha tarefa avanzada: Acelerómetro/Compás].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;TAREFA AVANZADA OPTATIVA:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á [http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;manuais&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;iessanclemente&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;net&lt;/del&gt;/index.php?title=LIBGDX_Xestion_Eventos_GestureListener realización dunha tarefa avanzada: Interface GestureListener].&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;TAREFA AVANZADA OPTATIVA:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á [http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mediawiki&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;cifprodolfoucha&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;es&lt;/ins&gt;/index.php?title=LIBGDX_Xestion_Eventos_GestureListener realización dunha tarefa avanzada: Interface GestureListener].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wiki</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_As_interfaces_para_capturar_eventos&amp;diff=483&amp;oldid=prev</id>
		<title>Wiki: Página creada con «&lt;span style=&quot;font-size:150%;&quot;&gt;UNIDADE 2: Interface de xestión de eventos&lt;/span&gt; &lt;br/&gt; &lt;br/&gt;  ===As interfaces===  Información na wiki: https://github.com/libgdx/libgdx/wi...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_As_interfaces_para_capturar_eventos&amp;diff=483&amp;oldid=prev"/>
		<updated>2015-12-11T17:04:20Z</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: Interface de xestión de eventos&amp;lt;/span&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;  ===As interfaces===  Información na wiki: https://github.com/libgdx/libgdx/wi...»&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: Interface de xestión de eventos&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===As interfaces===&lt;br /&gt;
&lt;br /&gt;
Información na wiki: https://github.com/libgdx/libgdx/wiki/Event-handling&lt;br /&gt;
&lt;br /&gt;
O motor libgdx ten dúas interfaces para xestionar todos os eventos:&lt;br /&gt;
&lt;br /&gt;
* InputProcessor: Xestiona os eventos de pulsación de teclas, pulsación sobre a pantalla (móbil), e arrastre do dedo pola pantalla (móbil)...&lt;br /&gt;
* GestureListener: Xestiona outro tipo de eventos coma son os de dobre pulsación (evento tap), o clásico movemento con dous dedos para facer un zoom da pantalla (evento zoom)....Esta interface está explicada na [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Xestion_Eventos_GestureListener Unidade 3: Xestión de Eventos: GestureListener].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para engadir unha interface temos que utilizar a palabra implements na definición da clase igual que fixemos coa interface Screen. Ó facelo vos dará un erro sobre o nome da clase. Se situades o rato enriba do erro aparecerá unha opción de &amp;#039;&amp;#039;&amp;#039;Add unimplimented methods&amp;#039;&amp;#039;&amp;#039; que debemos escoller.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Código da clase PantallaXogo&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; engadir unha interface de xestión de eventos.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class PantallaXogo implements Screen,InputProcessor {&lt;br /&gt;
        ...............&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean keyDown(int keycode) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean keyUp(int keycode) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean keyTyped(char character) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean touchDown(int screenX, int screenY, int pointer, int button) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean touchUp(int screenX, int screenY, int pointer, int button) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean touchDragged(int screenX, int screenY, int pointer) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean mouseMoved(int screenX, int screenY) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean scrolled(int amount) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		return false;&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;
Os eventos que controlamos con esta interface son:&lt;br /&gt;
&lt;br /&gt;
*keyDown(): Tecla premida.&lt;br /&gt;
*keyUp(): Tecla liberada.&lt;br /&gt;
*keyTyped(): Tecla premida e xera un carácter unidade.&lt;br /&gt;
*touchDown(): O dedo prema a pantalla (móbil) ou o botón do rato é premido.&lt;br /&gt;
*touchUp(): O dedo deixa de premer a pantalla ou o botón do rato deixa de ser premido.&lt;br /&gt;
*touchDragged(): Dedo ou rato é arrastrado pola pantalla. No caso do rato o botón debe estar presionado.&lt;br /&gt;
*mouseMoved(): O rato se move pola pantalla e non se pulsa ningún botón.&lt;br /&gt;
*scrolled(): Cando se preme a roda de scroll do rato.&lt;br /&gt;
&lt;br /&gt;
Como vemos todos os método devolven un boolean. Este é usado no caso de que teñamos diferentes interfaces de xestión de eventos no mesmo xogo e non queremos que o evento se traslade á seguinte interface (poñeríase return true). Normalmente o deixaremos por defecto.&lt;br /&gt;
&lt;br /&gt;
Unha vez temos a interface temos que &amp;#039;&amp;#039;informar&amp;#039;&amp;#039; á nosa clase que os eventos teñen que ir a dita interface.&lt;br /&gt;
&lt;br /&gt;
Isto o logramos chamando ó método [http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/Input.html#setInputProcessor-com.badlogic.gdx.InputProcessor- Gdx.input.setInputProcessor(obxecto)] indicando como obxecto o obxecto da clase que ten implementada a interface. No noso caso this:&lt;br /&gt;
*Gdx.input.setInputProcessor(this)&lt;br /&gt;
&lt;br /&gt;
Onde temos que poñer dita orde ?&lt;br /&gt;
&lt;br /&gt;
*O poñeremos nos métodos show e resume.&lt;br /&gt;
&lt;br /&gt;
Cando acabamos de xestionar os eventos chamaremos ó mesmo método pero enviando null como obxecto:&lt;br /&gt;
*Gdx.input.setInputProcessor(null)&lt;br /&gt;
&lt;br /&gt;
Onde temos que poñer dita orde ?&lt;br /&gt;
&lt;br /&gt;
*O poñeremos nos métodos pause, hide e dispose (pode ser que non sexa necesario poñelo en hide se programamos que cando cambiemos de pantalla chamemos ó método dispose).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Código da clase PantallaXogo&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; Informar á clase onde se atopa a xestión de eventos.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;5,11,17,24,31&amp;quot; &amp;gt;&lt;br /&gt;
        ......................&lt;br /&gt;
	@Override&lt;br /&gt;
	public void show() {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		Gdx.input.setInputProcessor(this);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public void hide() {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		Gdx.input.setInputProcessor(null);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public void pause() {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		Gdx.input.setInputProcessor(null);&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public void resume() {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		Gdx.input.setInputProcessor(this);&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public void dispose() {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		Gdx.input.setInputProcessor(null);&lt;br /&gt;
		rendererxogo.dispose();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora xa temos todo preparado para xestionar os eventos. Empecemos coa parte máis sinxela (a versión PC) e faremos que cando prememos as teclas do cursor movamos algo.&lt;br /&gt;
&lt;br /&gt;
Como estamos programando seguindo o [http://manuais.iessanclemente.net/index.php?title=LIBGDX_MVC MVC], teremos que informar á clase controladora que se pulsou unha tecla e actuar en consecuencia.&lt;br /&gt;
&lt;br /&gt;
Como o facemos ?&lt;br /&gt;
&lt;br /&gt;
Existen moitas alternativas. Eu vos vou expoñer a que aprendín.&lt;br /&gt;
&lt;br /&gt;
Definimos na clase ControladorXogo un tipo de datos [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Anexo_tipos_de_datos#Enum Enum] cos diferentes controis que podemos ter sobre o noso xogo. Neste caso teremos as catro teclas dos cursores:&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 enum Keys {&lt;br /&gt;
		ESQUERDA,DEREITA,ARRIBA,ABAIXO&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Despois definimos un [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Anexo_tipos_de_datos#HashMap hashmap] e o inicializamos a false (lembrar importar a clase coa combinación de teclas Control+Shift+O).&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;
	HashMap&amp;lt;Keys, Boolean&amp;gt; keys = new HashMap&amp;lt;ControladorXogo.Keys, Boolean&amp;gt;();&lt;br /&gt;
	{&lt;br /&gt;
		keys.put(Keys.ESQUERDA, false);&lt;br /&gt;
		keys.put(Keys.DEREITA, false);&lt;br /&gt;
		keys.put(Keys.ARRIBA, false);	&lt;br /&gt;
		keys.put(Keys.ABAIXO, false);	&lt;br /&gt;
	};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E por último, para poder acceder a esta variable dende a clase PantallaXogo, faremos os método pulsarTecla e liberarTecla dentro desta clase ControladorXogo:&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;
	/**&lt;br /&gt;
	 * Modifica o estado do mapa de teclas e pon a true &lt;br /&gt;
	 * @param tecla: tecla pulsada&lt;br /&gt;
	 */&lt;br /&gt;
	public void pulsarTecla(Keys tecla){&lt;br /&gt;
		keys.put(tecla, true);&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Modifica o estado do mapa de teclas e pon a false&lt;br /&gt;
	 * @param tecla: tecla liberada&lt;br /&gt;
	 */&lt;br /&gt;
	public void liberarTecla(Keys tecla){&lt;br /&gt;
		keys.put(tecla, false);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora só queda chamar a estes métodos dende a clase PantallaXogo...&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Código da clase PantallaXogo&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; Informar á clase controladora da tecla pulsada (lembrar importar o paquete Input coa combinación de teclas Contro+Shift+O).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean keyDown(int keycode) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
		// Liberamos as teclas para que se arrastramos o dedo a outro control sen soltar o anterior non xunte o efecto&lt;br /&gt;
		controladorXogo.liberarTecla(ControladorXogo.Keys.ABAIXO);&lt;br /&gt;
		controladorXogo.liberarTecla(ControladorXogo.Keys.ARRIBA);&lt;br /&gt;
		controladorXogo.liberarTecla(ControladorXogo.Keys.ESQUERDA);&lt;br /&gt;
		controladorXogo.liberarTecla(ControladorXogo.Keys.DEREITA);&lt;br /&gt;
&lt;br /&gt;
		switch(keycode){&lt;br /&gt;
		case Input.Keys.UP:&lt;br /&gt;
			controladorXogo.pulsarTecla(ControladorXogo.Keys.ARRIBA);&lt;br /&gt;
			break;&lt;br /&gt;
		case Input.Keys.DOWN:&lt;br /&gt;
			controladorXogo.pulsarTecla(ControladorXogo.Keys.ABAIXO);&lt;br /&gt;
			break;&lt;br /&gt;
		case Input.Keys.LEFT:&lt;br /&gt;
			controladorXogo.pulsarTecla(ControladorXogo.Keys.ESQUERDA);&lt;br /&gt;
			break;&lt;br /&gt;
		case Input.Keys.RIGHT:&lt;br /&gt;
			controladorXogo.pulsarTecla(ControladorXogo.Keys.DEREITA);&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
			&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como vedes non ten moita complicación. Simplemente comprobamos que tecla se preme e informamos á clase controladora.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA 2.7 A FACER:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á realización dunha tarefa.  &lt;br /&gt;
-----&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exercicio proposto&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
Agora é necesario mover o alien. Isto o facemos na clase ControladorXogo modificando a súa velocidade en función da tecla pulsada. Vos atrevedes a facelo ?&lt;br /&gt;
&lt;br /&gt;
Pistas:&lt;br /&gt;
* O alien ten unha mesma velocidade (non varía, non ten aceleración) pero pode moverse nos dous eixes (x/y). Teredes que crear na clase Alien os métodos necesarios para modificar dita velocidade en cada un dous eixes e obter dita velocidade.&lt;br /&gt;
* O método update terá que ter en conta a velocidade nos dous eixes. Neste xogo non permitimos que se mova en diagonal xa que cando prememos unha tecla desactivamos as anteriores.&lt;br /&gt;
* Lembrar que na clase ControladorXogo debemos modificar a velocidade cando se preme a tecla correspondente e para de moverse cando soltamos a tecla.&lt;br /&gt;
* Lembrar chamar ó método update do alien dende a clase ControladorXogo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Posible solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Código da clase Alien&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 os métodos para xestionar a velocidade nos eixes x/y e modificamos o método update.&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 class Alien extends Personaxe{&lt;br /&gt;
&lt;br /&gt;
	private Vector2 velocidade;&lt;br /&gt;
	&lt;br /&gt;
	public Alien(Vector2 posicion, Vector2 tamano, float velocidade_max) {&lt;br /&gt;
		super(posicion, tamano, velocidade_max);&lt;br /&gt;
		&lt;br /&gt;
		velocidade = new Vector2(0,0);&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public float getVelocidadeX(){&lt;br /&gt;
		return velocidade.x;&lt;br /&gt;
	}&lt;br /&gt;
	public float getVelocidadeY(){&lt;br /&gt;
		return velocidade.y;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setVelocidadeX(float x){&lt;br /&gt;
		velocidade.x = x;&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
	public void setVelocidadeY(float y){&lt;br /&gt;
		velocidade.y = y;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public void update(float delta) {&lt;br /&gt;
		// TODO Auto-generated method stub&lt;br /&gt;
&lt;br /&gt;
		setPosicion(getPosicion().x+velocidade.x*delta, getPosicion().y+velocidade.y*delta);&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;
Como vemos usamos un Vector2 para gardar as dúas velocidades. Cando prememos unha tecla faremos que dita velocidade valga a velocidade máxima (a que lle mandamos no constructor cando instanciamos o obxecto alien)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Código da clase ControladorXogo&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; Modificamos a velocidade do alien en función da tecla pulsada.&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;12-16,32,34,37-53&amp;quot;&amp;gt;&lt;br /&gt;
public class ControladorXogo {&lt;br /&gt;
&lt;br /&gt;
	private Mundo meuMundo;&lt;br /&gt;
	private Alien alien;&lt;br /&gt;
        ....................&lt;br /&gt;
	public ControladorXogo(Mundo mundo) {&lt;br /&gt;
		this.meuMundo = mundo;&lt;br /&gt;
		alien = meuMundo.getAlien();&lt;br /&gt;
	}&lt;br /&gt;
        ....................&lt;br /&gt;
&lt;br /&gt;
	private void controlarAlien(float delta){&lt;br /&gt;
		&lt;br /&gt;
		// Actualiza Alien&lt;br /&gt;
		alien.update(delta);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Vai chamar a todos os métodos para mover e controlar os personaxes Tamén&lt;br /&gt;
	 * xestionará os eventos producidos polo usuario e que veñen dende a clase&lt;br /&gt;
	 * PantallaXogo&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param delta&lt;br /&gt;
	 */&lt;br /&gt;
	public void update(float delta) {&lt;br /&gt;
&lt;br /&gt;
		controlarCoches(delta);&lt;br /&gt;
		controlarRochas(delta);&lt;br /&gt;
		controlarTroncos(delta);&lt;br /&gt;
		&lt;br /&gt;
		controlarNave(delta);&lt;br /&gt;
		controlarAlien(delta);&lt;br /&gt;
		&lt;br /&gt;
		procesarEntradas();&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
	private void procesarEntradas(){&lt;br /&gt;
		&lt;br /&gt;
		if (keys.get(Keys.DEREITA))&lt;br /&gt;
			alien.setVelocidadeX(alien.velocidade_max);&lt;br /&gt;
		if (keys.get(Keys.ESQUERDA))&lt;br /&gt;
			alien.setVelocidadeX(-alien.velocidade_max);&lt;br /&gt;
		if (!(keys.get(Keys.ESQUERDA)) &amp;amp;&amp;amp; (!(keys.get(Keys.DEREITA))))&lt;br /&gt;
			alien.setVelocidadeX(0);&lt;br /&gt;
			&lt;br /&gt;
		if (keys.get(Keys.ARRIBA))&lt;br /&gt;
			alien.setVelocidadeY(alien.velocidade_max);&lt;br /&gt;
		if (keys.get(Keys.ABAIXO))&lt;br /&gt;
			alien.setVelocidadeY(-alien.velocidade_max);&lt;br /&gt;
		if (!(keys.get(Keys.ARRIBA)) &amp;amp;&amp;amp; (!(keys.get(Keys.ABAIXO))))&lt;br /&gt;
			alien.setVelocidadeY(0);&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &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; Modificar a orde de chamada do método debuxarAlien na clase RendererXogo para que sexa a última. Desta forma o alien vaise debuxar por enriba de todos os demais elementos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Agora imos facer unha pequena modificación no xogo para que a parte baixa da pantalla conte cunha banda negra onde van ir as vidas salvadas e o crono do xogo.&lt;br /&gt;
&lt;br /&gt;
Isto xa deberiades ser capaces de facelo. Só temos que debuxar a textura baseada no gráfico LIBGDX_puntonegro.jpg que temos feito da tarefa 2.3. Como imos ter que gardar o tamaño desta banda negra para poder debuxalo dende a clase RendererXogo e facer que o Alien non poida baixar dende a clase ControladorXogo, imos definir o tamaño nunha clase de nome Controis que a definiremos no paquete principal.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Código da clase Controis&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; Gardamos o tamaño dos controis utilizados no xogo. Neste caso o tamaño da banda negra inferior.&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 class Controis {&lt;br /&gt;
&lt;br /&gt;
	public final static Rectangle FONDO_NEGRO = new Rectangle(0,0,Mundo.TAMANO_MUNDO_ANCHO,12);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Agora debuxamos dito control na clase RendererXogo:&lt;br /&gt;
&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; Debuxar a banda inferior negra.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;2-8,25&amp;quot;&amp;gt;&lt;br /&gt;
        ..............&lt;br /&gt;
	private void debuxarControis(){&lt;br /&gt;
		&lt;br /&gt;
		// Fondo negro&lt;br /&gt;
		spritebatch.draw(AssetsXogo.texturePuntoNegro, Controis.FONDO_NEGRO.x,Controis.FONDO_NEGRO.y,Controis.FONDO_NEGRO.width,Controis.FONDO_NEGRO.height);&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    public void render(float delta) {&lt;br /&gt;
		Gdx.gl.glClearColor(0, 0, 0, 1);&lt;br /&gt;
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);&lt;br /&gt;
&lt;br /&gt;
		spritebatch.begin();&lt;br /&gt;
		&lt;br /&gt;
			debuxarFondo();&lt;br /&gt;
		&lt;br /&gt;
			debuxarNave();&lt;br /&gt;
			&lt;br /&gt;
			debuxarCoches();&lt;br /&gt;
			debuxarRochas();&lt;br /&gt;
			debuxarTroncos();&lt;br /&gt;
			&lt;br /&gt;
			debuxarAlien();&lt;br /&gt;
&lt;br /&gt;
			debuxarControis();&lt;br /&gt;
		spritebatch.end();&lt;br /&gt;
		&lt;br /&gt;
		if (debugger) {&lt;br /&gt;
			debugger();&lt;br /&gt;
		}&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exercicio proposto&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
Facer que o alien non saia da pantalla, é dicir, que se mova nos límites do noso mundo e que non poda ir máis abaixo da banda inferior negra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Posible solución:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Código da clase ControladorXogo&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; Facer que o Alien se mova dentro dos límites da pantalla.&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;7-26&amp;quot;&amp;gt;&lt;br /&gt;
        ....................&lt;br /&gt;
	private void controlarAlien(float delta){&lt;br /&gt;
		&lt;br /&gt;
		// Actualiza Alien&lt;br /&gt;
		alien.update(delta);&lt;br /&gt;
		&lt;br /&gt;
		// Impide que se mova fora dos límites da pantalla&lt;br /&gt;
		if (alien.getPosicion().x &amp;lt;=0){&lt;br /&gt;
			alien.setPosicion(0, alien.getPosicion().y);&lt;br /&gt;
		}&lt;br /&gt;
		else {&lt;br /&gt;
			if (alien.getPosicion().x &amp;gt;= Mundo.TAMANO_MUNDO_ANCHO-alien.getTamano().x){&lt;br /&gt;
				alien.setPosicion(Mundo.TAMANO_MUNDO_ANCHO-alien.getTamano().x, alien.getPosicion().y);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if (alien.getPosicion().y &amp;lt;=Controis.FONDO_NEGRO.height){&lt;br /&gt;
			alien.setPosicion(alien.getPosicion().x,Controis.FONDO_NEGRO.height);&lt;br /&gt;
		}&lt;br /&gt;
		else {&lt;br /&gt;
			if (alien.getPosicion().y &amp;gt;= Mundo.TAMANO_MUNDO_ALTO-alien.getTamano().y){&lt;br /&gt;
				alien.setPosicion(alien.getPosicion().x, Mundo.TAMANO_MUNDO_ALTO-alien.getTamano().y);&lt;br /&gt;
			}&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;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Como temos definido o noso xogo (MVC) agora é moi sinxelo engadir novas formas de control (acelerómetro, gráfico, touchpad,...) xa que o único que temos que facer é controlar na clase que ten a interface cando se preme o control e chamar ó método presionarTecla coa &amp;#039;tecla&amp;#039; pulsada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA 2.8.A 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;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tarefas avanzadas===&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA AVANZADA OPTATIVA:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Acelerometro#Exemplo_de_c.C3.B3digo realización dunha tarefa avanzada: Acelerómetro/Compás].&lt;br /&gt;
-----&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA AVANZADA OPTATIVA:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Xestion_Eventos_GestureListener realización dunha tarefa avanzada: Interface GestureListener].&lt;br /&gt;
-----&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TAREFA AVANZADA OPTATIVA:&amp;#039;&amp;#039;&amp;#039; Esta parte está asociada á [http://manuais.iessanclemente.net/index.php?title=LIBGDX_TouchPad realización dunha tarefa avanzada: TochPad (joystick)].&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>