<?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_Vector_direccion</id>
	<title>LIBGDX Vector direccion - 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_Vector_direccion"/>
	<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_Vector_direccion&amp;action=history"/>
	<updated>2026-10-17T03:28:17Z</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_Vector_direccion&amp;diff=471&amp;oldid=prev</id>
		<title>Wiki en 22:40 9 dic 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_Vector_direccion&amp;diff=471&amp;oldid=prev"/>
		<updated>2015-12-09T22:40:44Z</updated>

		<summary type="html">&lt;p&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 22:40 9 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-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&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;===Introdución===&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;===Introdución===&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;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;lt;b&amp;gt;&amp;lt;u&amp;gt;Nota:&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; Esta explicación está [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_Movendo_os_graficos#Movendo_os_gr.C3.A1ficos._O_par.C3.A1metro_delta relacionada coa sección &amp;#039;Movendo os gráficos&amp;#039;].&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;lt;b&amp;gt;&amp;lt;u&amp;gt;Nota:&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; Esta explicación está [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_Movendo_os_graficos#Movendo_os_gr.C3.A1ficos._O_par.C3.A1metro_delta relacionada coa sección &amp;#039;Movendo os gráficos&amp;#039;].&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;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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l262&quot; &gt;Línea 262:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 262:&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;/syntaxhighlight&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;/syntaxhighlight&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;/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;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;* Liña 76-77: Calculamos o punto de destino (onde ten que chegar a bolboreta). Debemos facer [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_A_c%C3%A1mara_2D#&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Realizar_un_unproyect &lt;/del&gt;un unProyect] do mesmo.&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;* Liña 76-77: Calculamos o punto de destino (onde ten que chegar a bolboreta). Debemos facer [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_A_c%C3%A1mara_2D#&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Realizar_un_unproject &lt;/ins&gt;un unProyect] do mesmo.&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;* Liña 79: O punto de destino da bolboreta é o que devolve a cámara ortográfica (pero só nas coordenadas x - y).&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;* Liña 79: O punto de destino da bolboreta é o que devolve a cámara ortográfica (pero só nas coordenadas x - y).&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;* Liñas 81-82: Calculamos o vector dirección e o asinamos á bolboreta. Cando chamemos ó método update da bolboreta xa se move en función do novo valor do vector dirección.&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;* Liñas 81-82: Calculamos o vector dirección e o asinamos á bolboreta. Cando chamemos ó método update da bolboreta xa se move en función do novo valor do vector dirección.&lt;/div&gt;&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-l286&quot; &gt;Línea 286:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 286:&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;Utilizando o gráfico anterior ou outro elixido por ti, crea un novo tipo de inimigo que cada certo tempo se dirixa cara á posición do alien.&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;Utilizando o gráfico anterior ou outro elixido por ti, crea un novo tipo de inimigo que cada certo tempo se dirixa cara á posición do alien.&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;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;Posteriormente, cando chegues a [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_As_colisions sección das colisións] deberás xestionar cando o inimigo alcanza ó alien e matalo.&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;Posteriormente, cando chegues a [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_As_colisions sección das colisións] deberás xestionar cando o inimigo alcanza ó alien e matalo.&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_Vector_direccion&amp;diff=465&amp;oldid=prev</id>
		<title>Wiki: Página creada con «===Introdución===  &lt;b&gt;&lt;u&gt;Nota:&lt;/u&gt;&lt;/b&gt; Esta explicación está [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Movendo_os_graficos#Movendo_os_gr.C3.A1ficos._O_pa...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=LIBGDX_Vector_direccion&amp;diff=465&amp;oldid=prev"/>
		<updated>2015-12-09T22:32:31Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «===Introdución===  &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;Nota:&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; Esta explicación está [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Movendo_os_graficos#Movendo_os_gr.C3.A1ficos._O_pa...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===Introdución===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;Nota:&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; Esta explicación está [http://manuais.iessanclemente.net/index.php?title=LIBGDX_Movendo_os_graficos#Movendo_os_gr.C3.A1ficos._O_par.C3.A1metro_delta relacionada coa sección &amp;#039;Movendo os gráficos&amp;#039;].&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;
En case todos os xogos imos ter a necesidade de facer que o noso protagonista ou algún inimigo se mova cara a algo.&lt;br /&gt;
&lt;br /&gt;
Por exemplo, imaxinemos que temos un xogo no que disparamos un foguete e queremos que este se dirixa cara un certo punto.&lt;br /&gt;
&lt;br /&gt;
Para conseguir isto imos explicar o que é un &amp;#039;&amp;#039;&amp;#039;vector dirección&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Movendo os gráficos. Vector dirección===&lt;br /&gt;
&lt;br /&gt;
Normalmente en todos os xogo ides ter algún personaxe que se mova cara a algún outro personaxe. Por exemplo, cando disparedes queredes que as balas se movan cara o obxectivo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para conseguir isto imos facer uso do que se chama &amp;#039;&amp;#039;&amp;#039;Vector Dirección&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Primeiro imos temos que saber o que é un [http://es.wikipedia.org/wiki/Vector Vector]. De forma resumida para nós o Vector vai representar a dirección que ten que seguir un personaxe para chegar a un punto de destino.&lt;br /&gt;
&lt;br /&gt;
Se dito punto de destino non varía no tempo o vector de dirección ten que calcularse ó principio e non variará. Se queremos seguir a un personaxe que se move, cada certo tempo teremos que re-calcular dito vector dirección.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A forma máis sinxela de velo é cun exemplo.&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; Os concepto aprendidos serán igualmente aplicables a 3D introducindo a coordenada Z.&lt;br /&gt;
&lt;br /&gt;
Imaxinemos que estamos na coordenada (1,1) e queremos dirixirnos ata a coordenada (4,2).&lt;br /&gt;
O que teríamos que facer é calcular cal é o vector de dirección, é dicir, que números (x,y) sumados&lt;br /&gt;
a (1,1) nos levan ata o (4,2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imagen:LIBGDX_UD2_7_graficos_4.jpg | center]]&lt;br /&gt;
&lt;br /&gt;
O máis lóxico é restar o punto de destino menos o punto de orixe, desta forma:&lt;br /&gt;
&lt;br /&gt;
:Vector Dirección = Punto_Destino – Punto_Orixe = (4,2)-(1,1) = (3,1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En libgdx o faremos utilizando os métodos &amp;#039;&amp;#039;&amp;#039;[http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Vector2.html#sub-float-float- sub]&amp;#039;&amp;#039;&amp;#039; (para restar dous vectores) e &amp;#039;&amp;#039;&amp;#039;[http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Vector2.html#cpy-- cpy]&amp;#039;&amp;#039;&amp;#039; (para facer unha copia do vector) da clase Vector2 (con 3 coordenadas usamos un Vector3 e con dous Vector2):&lt;br /&gt;
&lt;br /&gt;
:Punto Orixe = Posición do personaxe = Vector2 posicion&lt;br /&gt;
:Punto Destino = Posición do punto de destino (no exemplo) = Vector2 (4,2)&lt;br /&gt;
&lt;br /&gt;
::direccion = posicion_destino.cpy().sub(posicion_orixe);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fixarse como usamos unha copia do vector de posición destino xa que o [http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Vector2.html#sub-float-float- método sub] modifica o&lt;br /&gt;
vector orixinal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se queremos aumentar o rendemento (xa que estamos a facer new´s ó usar a función cpy) teríamos un vector temporal xa creado previamente (no constructor) e copiaríamos o contido chamando ó método set da forma:&lt;br /&gt;
&lt;br /&gt;
:temporal.set(posicion_destino);&lt;br /&gt;
:direccion = temporal.sub(posicion_orixe);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Nota:&amp;lt;/b&amp;gt; Isto só ten sentido se estamos a chamar ó método cpy de forma continua ou se necesitamos gardar o vector posicion_destino para algo. Se, por exemplo, non modificamos o vector dirección, isto só o temos que facer unha vez no constructor e polo tanto non necesitamos vector temporal para esta operación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No exemplo anterior teríamos un vector de dirección con valores (3,1).&lt;br /&gt;
Agora poderíamos chegar ó punto de destino dun único salto, xa que na primeira iteración sumaríamos o seu valor e xa chegaríamos. &lt;br /&gt;
&lt;br /&gt;
:posicion = posicion + vector_dirección = (1,1) + (3,1) = (4,2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Isto é debido a que a súa lonxitude é moi grande.&lt;br /&gt;
Como o que queremos é que pouco a pouco vaia chegando podemos facer uso do [http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Vector2.html#nor-- método nor()] que normaliza o vector e fai que o seu valor sexa o vector unidade (para nos terá un valor &amp;lt;=1) pero os seus valores farán que ó sumalos á posición se vaia achegando ó punto de destino.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A forma de facer uso del sería a de normalizar o vector dirección antes de sumalo:&lt;br /&gt;
&lt;br /&gt;
:direccion.nor();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Nota:&amp;lt;/b&amp;gt; Loxicamente isto só o temos que facer unha vez xa que nor modifica o vector de dirección. Se volvemos aplicar dito método o faríamos sobre o vector xa previamente normalizado. Isto só será necesario facelo cada vez que modifiquemos o vector dirección.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora para mover o personaxe ó punto de destino teríamos que facer:&lt;br /&gt;
&lt;br /&gt;
:posicion.add(direccion.cpy().scl(velocidade*delta));&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; Igual que no caso anterior podemos usar o mesmo vector temporal para asinarlle antes a dirección e non ter que facer un cpy de cada vez. Normalmente teremos que utilizalo nesta operación.&lt;br /&gt;
&lt;br /&gt;
O [http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Vector2.html#scl-float- método scl] multiplica o vector por un escalar (no exemplo o escalar velocidade*delta).&lt;br /&gt;
&lt;br /&gt;
===Exemplo de código===&lt;br /&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; Facer que unha bolboreta se mova cara o punto premido na pantalla.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Preparación:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Copiade a seguinte imaxe ó cartafol assets: &lt;br /&gt;
&lt;br /&gt;
[[Imagen:LIBGDX_GRAFICO_mariposa.png|100px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;u&amp;gt;Nota:&amp;lt;/u&amp;gt; Imaxes obtidas dende http://opengameart.org/content/animated-butterfly&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt; © 2005-2013 Julien Jorge &amp;lt;julien.jorge@stuff-o-matic.com&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Crear unha nova clase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Clase Bolboreta:&amp;#039;&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;24-25&amp;quot;&amp;gt;&lt;br /&gt;
import com.badlogic.gdx.math.Vector2;&lt;br /&gt;
&lt;br /&gt;
public class Bolboreta  {&lt;br /&gt;
	 &lt;br /&gt;
    public Vector2 direccion,temporal;&lt;br /&gt;
    public Vector2 tamano,posicion;&lt;br /&gt;
    public float velocidade,velocidade_max;&lt;br /&gt;
    public Vector2 puntoDestino;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
    public Bolboreta(Vector2 posicion, Vector2 tamano, float velocidade_max) {&lt;br /&gt;
&lt;br /&gt;
    	this.posicion=posicion;&lt;br /&gt;
    	this.tamano = tamano;&lt;br /&gt;
    	this.velocidade_max=velocidade_max;&lt;br /&gt;
    	&lt;br /&gt;
        temporal = new Vector2();&lt;br /&gt;
        direccion = new Vector2(0,0);&lt;br /&gt;
        puntoDestino = new Vector2();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void update(float delta){&lt;br /&gt;
    	&lt;br /&gt;
    	temporal.set(direccion);&lt;br /&gt;
    	posicion.add(temporal.scl(velocidade_max*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;
&amp;lt;u&amp;gt;Nota:&amp;lt;/u&amp;gt; Por motivos de tempo non facemos os métodos get e set.&lt;br /&gt;
&lt;br /&gt;
* Liña 24: Utilizamos un vector temporal para gardar a dirección, xa que na seguinte liña facemos unha operación de multiplicación que afectaría o vector.&lt;br /&gt;
* Liña 25: Movemos a  bolboreta en función do vector dirección.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Clase VectorDireccion:&amp;#039;&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;76-77,79,81-82&amp;quot;&amp;gt;&lt;br /&gt;
import com.badlogic.gdx.ApplicationAdapter;&lt;br /&gt;
import com.badlogic.gdx.Gdx;&lt;br /&gt;
import com.badlogic.gdx.InputProcessor;&lt;br /&gt;
import com.badlogic.gdx.graphics.GL20;&lt;br /&gt;
import com.badlogic.gdx.graphics.OrthographicCamera;&lt;br /&gt;
import com.badlogic.gdx.graphics.Texture;&lt;br /&gt;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;&lt;br /&gt;
import com.badlogic.gdx.math.Vector2;&lt;br /&gt;
import com.badlogic.gdx.math.Vector3;&lt;br /&gt;
&lt;br /&gt;
public class VectorDireccion extends ApplicationAdapter implements InputProcessor{&lt;br /&gt;
	private SpriteBatch batch;&lt;br /&gt;
	private Texture img;&lt;br /&gt;
	private Bolboreta bolboreta;&lt;br /&gt;
	private OrthographicCamera camara2d;&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;LIBGDX_GRAFICO_mariposa.png&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
		bolboreta = new Bolboreta(new Vector2(30,30),new Vector2(50,50),100f);&lt;br /&gt;
		&lt;br /&gt;
		camara2d = new OrthographicCamera();&lt;br /&gt;
		camara2d.setToOrtho(false,500f,500f);&lt;br /&gt;
		camara2d.update();&lt;br /&gt;
		&lt;br /&gt;
		batch.setProjectionMatrix(camara2d.combined);&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 render() {&lt;br /&gt;
		Gdx.gl.glClearColor(1, 1, 1, 1);&lt;br /&gt;
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);&lt;br /&gt;
		&lt;br /&gt;
		bolboreta.update(Gdx.graphics.getDeltaTime());&lt;br /&gt;
		&lt;br /&gt;
		batch.begin();&lt;br /&gt;
		batch.draw(img, bolboreta.posicion.x, bolboreta.posicion.y);&lt;br /&gt;
		batch.end();&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	@Override&lt;br /&gt;
	public void dispose() {&lt;br /&gt;
		img.dispose();&lt;br /&gt;
		batch.dispose();&lt;br /&gt;
		&lt;br /&gt;
		Gdx.input.setInputProcessor(null);&lt;br /&gt;
		&lt;br /&gt;
	}&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;
		Vector3 novopunto = new Vector3(screenX,screenY,0);&lt;br /&gt;
		camara2d.unproject(novopunto);&lt;br /&gt;
		&lt;br /&gt;
		bolboreta.puntoDestino.set(new Vector2(novopunto.x,novopunto.y));&lt;br /&gt;
		&lt;br /&gt;
		Vector2 direccion = bolboreta.puntoDestino.cpy().sub(bolboreta.posicion);&lt;br /&gt;
		bolboreta.direccion.set(direccion.nor());&lt;br /&gt;
		&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;
* Liña 76-77: Calculamos o punto de destino (onde ten que chegar a bolboreta). Debemos facer [http://manuais.iessanclemente.net/index.php?title=LIBGDX_A_c%C3%A1mara_2D#Realizar_un_unproyect un unProyect] do mesmo.&lt;br /&gt;
* Liña 79: O punto de destino da bolboreta é o que devolve a cámara ortográfica (pero só nas coordenadas x - y).&lt;br /&gt;
* Liñas 81-82: Calculamos o vector dirección e o asinamos á bolboreta. Cando chamemos ó método update da bolboreta xa se move en función do novo valor do vector dirección.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podedes probar agora como a bolboreta se dirixe cara ó punto indicado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&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;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TAREFA OPTATIVA A FACER==&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 OPTATIVA A FACER:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
Utilizando o gráfico anterior ou outro elixido por ti, crea un novo tipo de inimigo que cada certo tempo se dirixa cara á posición do alien.&lt;br /&gt;
&lt;br /&gt;
Posteriormente, cando chegues a [http://manuais.iessanclemente.net/index.php?title=LIBGDX_As_colisions sección das colisións] deberás xestionar cando o inimigo alcanza ó alien e matalo.&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2015).&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
		
	</entry>
</feed>