<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>NMadrid</title>
	<atom:link href="http://www.nmadrid.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nmadrid.com</link>
	<description></description>
	<pubDate>Thu, 14 Aug 2008 12:09:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Programar, o programacion, en Nintendo DS y mi blog</title>
		<link>http://www.nmadrid.com/programar-o-programacion-en-nintendo-ds-y-mi-blog/</link>
		<comments>http://www.nmadrid.com/programar-o-programacion-en-nintendo-ds-y-mi-blog/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 12:09:18 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[ARG]]></category>

		<category><![CDATA[Mias Cosas]]></category>

		<category><![CDATA[Nintendo DS]]></category>

		<category><![CDATA[Programacion NDS]]></category>

		<category><![CDATA[Proyectos]]></category>

		<category><![CDATA[Vacaciones]]></category>

		<category><![CDATA[acampada]]></category>

		<category><![CDATA[ds]]></category>

		<category><![CDATA[NDS]]></category>

		<category><![CDATA[Nintendo]]></category>

		<category><![CDATA[Programacion]]></category>

		<category><![CDATA[programando]]></category>

		<category><![CDATA[programar]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=96</guid>
		<description><![CDATA[El título es para atraer mas visitas por los buscadores, para que mentir, esto no tiene nada que ver con la programación en Nintendo DS, pero oye, visitante, busca por el blog, que tengo manuales ^^
Ala, atraida gente (Es que vienen un huevo por &#8220;programando&#8221;, y por programar y programación me quedo en la segunda [...]]]></description>
			<content:encoded><![CDATA[<p>El título es para atraer mas visitas por los buscadores, para que mentir, esto no tiene nada que ver con la programación en Nintendo DS, pero oye, visitante, busca por el blog, que tengo manuales ^^</p>
<p>Ala, atraida gente (Es que vienen un huevo por &#8220;programando&#8221;, y por programar y programación me quedo en la segunda o tercera página xD), me voy de acampada, llego el sábado noche y el domingo no postearé por que hay fiesta de mañana del pueblo y viaje por la tarde, así que hasta el Lunes esto queda vacío.</p>
<p>Pasadlo bien, y, Fenris, espero ver ese email cuando llegue el Lunes y me conecte ;), aunque si todavía andas malucho no pasa nada.</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/programar-o-programacion-en-nintendo-ds-y-mi-blog/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programacion NDS: Un nuevo idioma, C (1ª Parte)</title>
		<link>http://www.nmadrid.com/programacion-nds-3/</link>
		<comments>http://www.nmadrid.com/programacion-nds-3/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 22:29:27 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[Planet Stratos]]></category>

		<category><![CDATA[Programacion NDS]]></category>

		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[desarrollo]]></category>

		<category><![CDATA[manual]]></category>

		<category><![CDATA[NDS]]></category>

		<category><![CDATA[Nintendo DS]]></category>

		<category><![CDATA[palib]]></category>

		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=81</guid>
		<description><![CDATA[Pues, pese a que esto tendrá falta de ortografías, y no será el mejor manual del mundo sobre C, ni siquiera algo bueno, ni normal..., por que los habrá mejores fijo, por que, encima, esto es una "pasada" por encima, me arriesgo:
Programacion NDS: Un nuevo idioma, C
Nota: Hay cosas que daré aquí que NO son [...]]]></description>
			<content:encoded><![CDATA[<p>Pues, pese a que esto tendrá falta de ortografías, y no será el mejor manual del mundo sobre C, ni siquiera algo bueno, ni normal..., por que los habrá mejores fijo, por que, encima, esto es una "pasada" por encima, me arriesgo:</p>
<h3>Programacion NDS: Un nuevo idioma, C</h3>
<p>Nota: Hay cosas que daré aquí que NO son válidas en C estandar, intentaré avisarlas pero si se me va la pinza y se me pasan por alto, y sabéis cuales son, avisadme.</p>
<p>Lo primero que veremos son las variables, lo mas básico en cualquier lenguaje, y que son, básicamente identificadores que nos darán acceso a unos datos que queramos guardar y modificar durante la ejecución del programa, o la vida de las variables (Ya explicaré esto), y que además, pueden ser de diferentes tipos.</p>
<p>Las variables enteras (integer), como su nombre indica, nos permiten guardar números, según su tamaño, y se declaran así:</p>
<div class="igBar"><span id="lcpp-23"><a href="#" onclick="javascript:showCodeTxt('cpp-23'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-23">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> NombreVariable; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Facil, sencillo y para toda la familia. Habrás intuido ya como se crean las variables, en general, todas se declaran igual:</p>
<div class="igBar"><span id="lcpp-24"><a href="#" onclick="javascript:showCodeTxt('cpp-24'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-24">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tipo Nombre</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> Variable_Entera;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">float</span> Variable_Decimal;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">char</span> Variable_Caracter;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">bool</span> Variable_Booleana;&nbsp; <span style="color: #ff0000;">//En C estandar estas variables NO EXISTEN!!! </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Si, se pone el tipo, un espacio o dos, y el nombre de la variable, el cual puede contener letras, numeros y "_", pero <strong>TIENE QUE EMPEZAR OBLIGATORIAMENTE POR UNA LETRA</strong>, además, son <em>case sensitive</em>, osea, se diferencian mayúsculas y minúsculas:</p>
<div class="igBar"><span id="lcpp-25"><a href="#" onclick="javascript:showCodeTxt('cpp-25'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-25">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> Variable_123;&nbsp; &nbsp;<span style="color: #ff0000;">//Correcta</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> 34Variable;&nbsp; &nbsp; &nbsp;<span style="color: #ff0000;">//MAL!!!!</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> MiVariable;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> mivariable;&nbsp; &nbsp;<span style="color: #ff0000;">//No es la misma que la anterior!!! </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Hay muchas maneras de llamar a una variable, yo recomiendo nombres descriptivos para ayudarte a la hora de entender el código, o de que lo entienda otro, si vas a crear una variable para guardar el número de vidas que le quedan al protegonista, no la llames "<strong>VproQue</strong>", sería una tontería, pudiendo llamarla "<strong>vidasProta</strong>", por ejemplo, o "<strong>vidaRestantes</strong>", etc.</p>
<p>El tamaño de los integer puede variar, y la manera de declararlos también, me explico, hemos visto que para declarar enteros lo hacemos con la palabra reservada "int", lo que, según cada compilador puede ser un tamaño u otro, además, si compilamos en un entorno antiguo, una CPU de hace un par de años, con un solo nucleo, posiblemente un integer ocupe 32bits, pero, en los nuevos procesadures, con varios núcleos, con una estructra de 64bits, pues, un integer ocupará 64bits, y esto puede traer problemas, ya que según el tamaño habrá un rango máximo, osea, un integer de 8bits con signo no puede guardar números superiores a 127, ni inferiores a -128, y si nos pasamos...puede ocurrir cualquier cosa, si se nos desbordan los números pensando que tenemos un integer de 64 bits, pero en realidad tan solo es de 32.....a saber...</p>
<p>Por eso, para ahorrarnos ningún problema, declararemos los integers con su tamaño:</p>
<div class="igBar"><span id="lcpp-26"><a href="#" onclick="javascript:showCodeTxt('cpp-26'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-26">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">s8 Variable_8bits;&nbsp; <span style="color: #ff0000;">// Con signo, de -128 a 127</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">s16 Variable_16bits;&nbsp; &nbsp; <span style="color: #ff0000;">//Con signo, de -32.768 a 32.767</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">s32 Variable_32bits;&nbsp; &nbsp; <span style="color: #ff0000;">//Con signo, de -2.147.483.648 a 2.147.483.647</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">u8 Variable_8bits;&nbsp; &nbsp; <span style="color: #ff0000;">//Sin signo, de 0 a 255</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">u16 Variable_16bits;&nbsp; &nbsp; <span style="color: #ff0000;">//Sin signo, de 0 a 65.535</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">u32 Variable_32bits;&nbsp; &nbsp; <span style="color: #ff0000;">//Sin signo, de 0 a 4.294.967.295 </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>s</strong>igned y <strong>u</strong>nsigned, por si no necesitamos números negativos.</p>
<p>Y listo, una mejor manera de manejar nuestros enteros, sabiendo siempre el espacio que ocuparán.</p>
<p>Los enteros no pueden manejar decimales, así que para eso se han creado los tipos "float", que ya puse arriba, y que se declaran igual que los enteros pero con "float" en vez de con "int"</p>
<div class="igBar"><span id="lcpp-27"><a href="#" onclick="javascript:showCodeTxt('cpp-27'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-27">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">float</span> variableDecimal; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Pues no me voy a parar a decir cuantos decimales pueden manejar los float, de que número a que número, etc. Con los tipos float podrás manejar números con comas, bastante grandes, así que no tendrás problemas de presición.</p>
<p>Los tipos char pueden guardar letras, solo una letra, luego pondré como guardar palabras enteras, o frases. Y por último los tipo boolean (bool), que son unas variables que no están en C estandar, pero que con las librerías para Nintendo DS podrás usar, ocupando muy poco espacio, ya que solo podrás usar un 1, para verdadero, y un 0 para false. Eso si, no las podrás usar como booleanos normales, tampoco hace maravillas la libnds, no modifican C:</p>
<div class="igBar"><span id="lcpp-28"><a href="#" onclick="javascript:showCodeTxt('cpp-28'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-28">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">bool</span> variable;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">variable = <span style="color: #0000dd;color:#800000;">1</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>variable<span style="color: #000000;">&#41;</span> .....;&nbsp; &nbsp; <span style="color: #ff0000;">// MAL!!!!!</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>variable == <span style="color: #0000dd;color:#800000;">1</span><span style="color: #000000;">&#41;</span>....;&nbsp; &nbsp;<span style="color: #ff0000;">//Bien!!! </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>A ver, no se puede comprobar directamente si es verdadero o no, siempre habrá que comprobar si es igual a 1 o igual a 0, osea, que el único beneficio es, un ahorro en memoria, algo importante.</p>
<p>En C estandar, para mostrar algo en la salida estandar se hace así:</p>
<div class="igBar"><span id="lcpp-29"><a href="#" onclick="javascript:showCodeTxt('cpp-29'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-29">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000dd;">printf</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">"Hola, esto es un texto"</span><span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Y en la NDS, usando las PAlib, un texto simple, sería:</p>
<div class="igBar"><span id="lcpp-30"><a href="#" onclick="javascript:showCodeTxt('cpp-30'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-30">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_OutputSimpleText<span style="color: #000000;">&#40;</span><span style="color: #0000dd;color:#800000;">0</span>, <span style="color: #0000dd;color:#800000;">2</span>, <span style="color: #0000dd;color:#800000;">2</span>, <span style="color: #666666;">"Hola, esto es un texto"</span><span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Ya daremos los valores que no son texto en otro momento, lo que me interesa es como mostrar los valores de las variables en pantalla:</p>
<div class="igBar"><span id="lcpp-31"><a href="#" onclick="javascript:showCodeTxt('cpp-31'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-31">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">//Para mostrar los integer, o los sX o uX se usa %d</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000dd;">printf</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">"La variable tiene el numero %d"</span>, variableInteger<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">//En NDS sería igual</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_OutputText<span style="color: #000000;">&#40;</span><span style="color: #0000dd;color:#800000;">0</span>, <span style="color: #0000dd;color:#800000;">2</span>, <span style="color: #0000dd;color:#800000;">2</span>, <span style="color: #666666;">"La variable tiene el numero %d"</span>, variableInteger<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">//Para floats, se usaría &amp;amp;f</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_OutputText<span style="color: #000000;">&#40;</span><span style="color: #0000dd;color:#800000;">0</span>,<span style="color: #0000dd;color:#800000;">2</span>,<span style="color: #0000dd;color:#800000;">2</span>,<span style="color: #666666;">"La variable float contiene el valor %f"</span>, variableFloat<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">/*Se puede controlar el máximo de numeros enteros y decimales</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">a mostrar con numeros, por ejemplo*/</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_OutputText<span style="color: #000000;">&#40;</span><span style="color: #0000dd;color:#800000;">0</span>,<span style="color: #0000dd;color:#800000;">2</span>,<span style="color: #0000dd;color:#800000;">2</span>,<span style="color: #666666;">"Mostrar toda la parte entera y solo 3 numeros tras la coma %.3f"</span>, variableFloat<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_OutputText<span style="color: #000000;">&#40;</span><span style="color: #0000dd;color:#800000;">0</span>,<span style="color: #0000dd;color:#800000;">2</span>,<span style="color: #0000dd;color:#800000;">2</span>,<span style="color: #666666;">"Mostrar solo 2 numeros enteros (Redondeando) y solo dos tras la coma: %2.2f"</span>, variableFloat<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">//Para los char, pues %c</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_OutputText<span style="color: #000000;">&#40;</span><span style="color: #0000dd;color:#800000;">0</span>,<span style="color: #0000dd;color:#800000;">2</span>,<span style="color: #0000dd;color:#800000;">2</span>,<span style="color: #666666;">"Tenemos aquí la letra %c"</span>, variableChar<span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Un booleano no se puede mostrar, así que se tendría que hacer con Ifs, ¿Que no sabes lo que son Ifs?, pues ya lo sabrás luego ^^</p>
<p>Algo que me ha faltado es como ponerle valores a nuestras variables, como modificarlos...vamos, <strong>operadores:</strong></p>
<p>Los operadores básicos son el de asignación <strong>"="</strong> y el de comparación, <strong>"=="</strong>, que como puedes ver, pueden causar confusión y grandes problemas:</p>
<div class="igBar"><span id="lcpp-32"><a href="#" onclick="javascript:showCodeTxt('cpp-32'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-32">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> personas = <span style="color: #0000dd;color:#800000;">3</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> coches = <span style="color: #0000dd;color:#800000;">5</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">char</span> letraPrimera, letraSegunda;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">letraPrimera = <span style="color: #666666;">'b'</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">letraSegunda = <span style="color: #666666;">'A'</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Bueno, aprovechando he puesto un par de cosas mas. Como podeis ver, en la declaración de las variables se puede poner directamente su valor, sin tener que hacerlo en varias lineas. Además, se pueden crear varias variables del mismo tipo en la misma línea, separando los nombres por comas, mas rápido, eso si, no se te olvide lo de un solo tipo por línea.</p>
<p>Además, acabais de ver que los tipo char, la letra tiene que ir entre comillas simples, que no se os olvide NUNCA, ojo.</p>
<p>Se me ha borrado la mitad...sin recuperación...necesito instalarme ya el office...a ver por donde iba...si me falta algo avisad xD, creo que ahora tocaba los demás operadores, vamos a ver esos diferentes operadores (No todos, pero si unos cuantos por ahora)</p>
<p>+     Operador para sumar<br />
-     Operador para restar<br />
*     Operador para multiplicar<br />
/     Operador para dividir<br />
%    Operador para el resto ("5 % 2" devolvería 1, que es el resto de 5/2)<br />
++   Operador de incremento<br />
--    Operador de decremento<br />
&lt;&lt;   Desplazamiento de bits hacia la izquierda<br />
&gt;&gt;   Desplazamiento de bits hacia la derecha</p>
<p>Los operadores que os he puesto ahora son muy básicos, aunque con los 4 últimos haré una explicación especial ^^</p>
<p>Los operadores ++ y -- sirven para, sumar 1, o restar 1 a la variable a la que "juntemos", por así decirlo, un ejemplillo:</p>
<div class="igBar"><span id="lcpp-33"><a href="#" onclick="javascript:showCodeTxt('cpp-33'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-33">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">coches = <span style="color: #0000dd;color:#800000;">5</span>;&nbsp; &nbsp;<span style="color: #ff0000;">//Coches vale 5 ^^</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">coches++;&nbsp; &nbsp; <span style="color: #ff0000;">//Ahora coches vale 6</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">coches--;&nbsp; &nbsp; <span style="color: #ff0000;">//Y ahora 5 de nuevo</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">--coches;&nbsp; &nbsp; <span style="color: #ff0000;">//Ahora 4, que nos quedamos sin coches!</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">++coches;&nbsp; &nbsp;<span style="color: #ff0000;">//Volvemos a tener 5 coches; </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Como podeis ver, no tiene misterio, o si, por que eso de que se pueda usar antes o después de la variable si que da un poco de juego, ya que el pre-incremento/decremento (antes de la variable) hace la modificación en la variable antes de realizar las demás acciones de la línea en las que intervenga esa variable, y el post-incremento/decremento (después de la variable) realiza la modificación después de que esa variable sea usada....mas ejemplo, que no se explicar:</p>
<div class="igBar"><span id="lcpp-34"><a href="#" onclick="javascript:showCodeTxt('cpp-34'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-34">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">coches = <span style="color: #0000dd;color:#800000;">5</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">compradores = <span style="color: #0000dd;color:#800000;">0</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">compradores = coches;&nbsp; <span style="color: #ff0000;">//Coches y compradores valen 5 ^^</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">compradores = <span style="color: #0000dd;color:#800000;">0</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff0000;">//La volvemos a poner a 0;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">compradores = ++coches;&nbsp; &nbsp;<span style="color: #ff0000;">//Ahora coches y compradores valen 6</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">//Esto equivale a:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">// coches = coches +1;&nbsp; &nbsp;( O &quot;coches += 1;&quot;, ya lo veremos)</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">//compradores = coches;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">compradores = <span style="color: #0000dd;color:#800000;">0</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff0000;">//Compradores vale 0, y coches sigue valiendo 6</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">compradores = coches--;&nbsp; &nbsp;<span style="color: #ff0000; font-style: italic;">/*¿Cuanto creeis que vale ahora?</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">Haremos primero un desglose....</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">compradores = coches;&nbsp; &nbsp; &nbsp; Primero se igualan</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">coches = coches - 1;&nbsp; &nbsp; &nbsp; (O &quot;coches -= 1;&quot;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">Por lo tanto, compradores vale 6, y coches vale 5*/</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Acabamos de ver varias cosas, espero que hayas entendido el poner el incremento o decremento antes o después, ya que puede hacer que te ahorres un par de líneas, si no lo has entendido, pregunta, e intentaré ayudarte en donde te hayas quedado atascado. La otra diferencia entre poner los incrementos o decrementos antes o después es que, ponerlo antes es mas óptimo, osea, tarda menos y consume menos recursos, y es sencillamente por que, por alguna razón, no se cual, al poner el modificar después de la variable (variable++, por ejemplo) se crea una variable temporal, así que, si simplemente tienes que hacer un incremento o decremento, dandote igual como lo haga, mejor hazlo antes de la variable, que vale, que tal vez una o dos variables no cambiarán nada para tu mini proyecto, pero las buenas costumbres es buenas cogerlas desde el principio, por que, si alguna vez llegas a un proyecto grande, las mas mínima optimización <strong>SI ES IMPORTANTE</strong>, tenlo en cuenta.</p>
<p>Por donde vamos...los desplazadores de bits, <strong>"&lt;&lt;"</strong> y <strong>"&gt;&gt;"</strong></p>
<p>Bueno, esto básicamente convierte a binario el número al que hagais la modificación, y desplaza todos los bits hacia la izquierda, o hacia la derecha, según hayais elegido, y los bits nuevos se rellenan con ceros. Si no sabes que son los números binarios, da igual, si lo sabes, mejor, la cuestión está en....¿Para que sirve? Pues a ver, las divisiones, "/", son lentas, y las operaciones a nivel binarios son muy rápidas, cuando se desplaza un bit hacia la izquierda (&lt;&lt;), lo que se hace es multiplicar por 2, y cuando se desplaza hacia la derecha (&gt;&gt;) se divide por dos, esto significa que estas divisiones, si las realizas así, serán muchas mas rápidas y óptimas, y para ver como usarlas, ejemplos:</p>
<p>variable = 2;<br />
variable = variable &lt;&lt; 1;</p>
<p>Con esto lo que hacemos es desplazar un bit hacia la izquierda:</p>
<p>Tenemos 10 =  1010 en binario, desplazando y rellenando uno hacia la izquierda...:<br />
Tenemos 20 =  10100</p>
<p>Cada numero es un desplazamiento, y por lo tanto, una multiplicación o división entre 2</p>
<p>Mas ejemplos:</p>
<p>-----</p>
<p>variable = 2;</p>
<p>variable = variable &lt;&lt; 2;  //Dos desplazamientos:<br />
// 2 x 2 = 4   (Un desplazamiento)<br />
// 4 x 2 = 8  (Segundo desplazamiento)</p>
<p>//Ahora variable vale 8</p>
<p>variable = variable &gt;&gt; 1;   //Un solo desplazamiento:<br />
// 8 / 2 = 4</p>
<p>//Ahora variable vale 4</p>
<p>-----</p>
<p><strong>Arrays...:</strong></p>
<p>Una tabla, o arrays en ingles, es un conjunto de elementos, todos ellos del mismo tipo.<br />
Veamos, seamos claros, si quieres guardar 2000 numeros, ¿Vas a crear las 2000 variables? Escribiendo su nombre una a una, ¿De verdad? No hombre no, para eso existen los arrays, para guardar un conjunto de números, de letras, de floats, de...puf...de todo!</p>
<div class="igBar"><span id="lcpp-35"><a href="#" onclick="javascript:showCodeTxt('cpp-35'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-35">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> miArray<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">40</span><span style="color: #000000;">&#93;</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">miArray<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">0</span><span style="color: #000000;">&#93;</span> = <span style="color: #0000dd;color:#800000;">1</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">miArray<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">1</span><span style="color: #000000;">&#93;</span> = <span style="color: #0000dd;color:#800000;">2</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">miArray.... </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Como podeis ver, se crean como una variable normal pero con un número entre unos corchetes, que indican la cantidad de ese tipo de datos que contendrá, por ejemplo, yo he creado un array que es capaz de guardar 40 datos del tipo int, y para acceder a ellos solo tendré que poner miArray[0] a miArray[39], el que quiera.</p>
<p>Atentos, como podeis ver, se empieza a contar desde 0, osea, que siempre has de llegar hasta el tamaño - 1, si lo creas de 40, el último que podrás modificar será el 39, por que empiezas a contar desde 0, no desde 1 <img src='http://www.nmadrid.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Con los arrays podrás crear palabras y frases, no enseñaré como "recogerlas" del usuario, solo como asignarlas nosotros, ya que yo me oriento a NDS:</p>
<div class="igBar"><span id="lcpp-36"><a href="#" onclick="javascript:showCodeTxt('cpp-36'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-36">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">char</span> frase<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">50</span><span style="color: #000000;">&#93;</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">frase = <span style="color: #666666;">"Hola, esto es una frase menor de 50 caracteres"</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>¿Habeis visto? La frase entre comillas y listo. Pero ojo, por caracteres, también se incluyen comas y espacios, y si teneis espacio para 50, debeis poner frases de 49 o menores, ya que se detecta el final de la frase cuando se lee el caracter "/0", colocado automáticamente al final sin nosotros tener que hacer nada, pero, si colocamos el tamaño justo, osea, si la frase que yo he puesto fuera de 50 caracteres, no hubiera podido ponerse solo el carácter de fin de línea ("/0"), y hubiera ocasionado un desastre, por que si mostraramos ese array, que es una frase, en pantalla, mostraría todo lo que hay después en la memoria hasta que encontrara un "/0", y a saber que podría mostrar, la memoria siempre está llena de basura ^^</p>
<p>Así que ya sabeis, esto ha sido rápido pero creo que entendible, si quereis guardar frases, o texto, basta crear un array de tamaño superior a dicho texto, un array de char (char miArray[X]), y guardar ahí la frase, ya os diré como manejarlas en la NDS, aunque antes un truquito:</p>
<p>Si teneis un texto, y no quereis medir cuanto mide, por ejemplo, todo el texto de la intro, o los dialogos , podeis hacer:</p>
<div class="igBar"><span id="lcpp-37"><a href="#" onclick="javascript:showCodeTxt('cpp-37'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-37">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">char</span> texto1<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> = <span style="color: #666666;">"Este sera el texto principal del juego"</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Como veis, si no le poneis tamaño, pero le asignais ya su valor, el compilador será tan inteligente que le asignará el tamaño del texto + 1 y tu te habrás ahorrado lios, aunque yo recomiendo SIEMPRE tener los tamaños de vuestras variables y arrays controlados <img src='http://www.nmadrid.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Para mostrar las cadenas de caracteres no pondré ejemplo, se hace igual que con los integer, los float, y los char, pero usando "%s", y poniendo, luego en las comas, solo el nombre del array, sin los corchetes....bueno, pondré ejemplo:</p>
<div class="igBar"><span id="lcpp-38"><a href="#" onclick="javascript:showCodeTxt('cpp-38'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-38">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">char</span> frase<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">50</span><span style="color: #000000;">&#93;</span> = <span style="color: #666666;">"Esto es una frase way"</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">char</span> frase2<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">15</span><span style="color: #000000;">&#93;</span> =<span style="color: #666666;">"Y esto no"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000dd;">printf</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">"Pues %s, %s"</span>, frase, frase2<span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Lo de arriba dará como salida "Pues Esto es una frase way, Y esto no", espero que se haya entendido. Si no lo había dicho ya (No voy a volver a mirar arriba), como podeis ver se pueden mostrar varias variables a la vez, solo basta con poner los idenfiticadores (%d,%f,%c,%s) y después poner, separados por comas, los datos en el mismo orden que hemos puesto entre comillas para que se muestren ^^.</p>
<p><strong>Estructuras:</strong></p>
<p>Una estructura de datos pues es...eso, una estructura de datos, no obligatoriamente del mismo tipo, que nos facilitan la vida.</p>
<p>Por ejemplo, imaginaos un registro de usuarios, donde tengais que tener el nombre, los apellidos, edad, nick, email, dirección....crear eso de uno en uno, y para varias personas...</p>
<div class="igBar"><span id="lcpp-39"><a href="#" onclick="javascript:showCodeTxt('cpp-39'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-39">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">char</span> Apellido1<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">50</span><span style="color: #000000;">&#93;</span>, Apellido2<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">50</span><span style="color: #000000;">&#93;</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">char</span> direccion1<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">50</span><span style="color: #000000;">&#93;</span>, direccion2<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">50</span><span style="color: #000000;">&#93;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">.... </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Me aburre hasta ponerlo a mi para el ejemplo... y ya no digo modificarlas...que será lo mas aburrido del mundo, y eso que he puesto un ejemplo normalillo, los hay peores...pero...¡con estructuras todo está solucionado!, bueno, en realidad no, pero se hace menos aburrido:</p>
<div class="igBar"><span id="lcpp-40"><a href="#" onclick="javascript:showCodeTxt('cpp-40'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-40">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">struct</span> <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">char</span>&nbsp; inicial;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">int</span>&nbsp; &nbsp;edad;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">float</span> nota;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> persona; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Una estructura sencilla, primero ponemos el idenfiticador "struct", abrimos un corchete, y creamos las variables que queramos, como unas variables globales, y luego cerramos corchetes y ponemos el nombre del struct, luego:</p>
<div class="igBar"><span id="lcpp-41"><a href="#" onclick="javascript:showCodeTxt('cpp-41'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-41">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">struct</span> persona persona1, persona2, persona3; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>¡Hemos creado a 3 personas, con sus variables inicial, edad y nota en un momento!<br />
¿Y para acceder a las variables? Con un punto:</p>
<div class="igBar"><span id="lcpp-42"><a href="#" onclick="javascript:showCodeTxt('cpp-42'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-42">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">persona1.<span style="color: #00eeff;">nota</span> = <span style="color: #0000dd;color:#800000;">5</span>.<span style="color: #0000dd;color:#800000;">5</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">persona2.<span style="color: #00eeff;">inicial</span> = <span style="color: #666666;">'A'</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">persona3.<span style="color: #00eeff;">edad</span> = <span style="color: #0000dd;color:#800000;">18</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>En las estructuras podemos poner arrays, obviamente:</p>
<div class="igBar"><span id="lcpp-43"><a href="#" onclick="javascript:showCodeTxt('cpp-43'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-43">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">struct</span> <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">char</span> direccion<span style="color: #000000;">&#91;</span><span style="color: #0000dd;color:#800000;">100</span><span style="color: #000000;">&#93;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">int</span> edad;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> persona;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">struct</span> persona persona1, persona2;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">persona1.<span style="color: #00eeff;">direccion</span> = <span style="color: #666666;">"P. SHERMAN, CALLE WALLABY, 42, SYDNEY"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">persona1.<span style="color: #00eeff;">edad</span> = <span style="color: #0000dd;color:#800000;">25</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">persona2.<span style="color: #00eeff;">direccion</span> = <span style="color: #666666;">"Dark Vader, Estrella de la muerte, despacho 20, Galaxia X, Vía Lactea"</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">persona2.<span style="color: #00eeff;">edad</span> = <span style="color: #0000dd;color:#800000;">18</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Como veis no tiene mucho misterio, y nos podemos ahorrar el "struct" en las declaraciones de variables de ese tipo de estructura creandonos un tipo de dato, de la siguiente manera:</p>
<div class="igBar"><span id="lcpp-44"><a href="#" onclick="javascript:showCodeTxt('cpp-44'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-44">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">typedef</span> <span style="color: #0000ff;">struct</span> <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">datos...</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> persona;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">persona variable1; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Al poner "typedef" antes de struct estaremos creando un tipo predefinido por nosotros, por lo que podremos crear variables de ese tipo mas rápidamente.</p>
<p>Todo lo que he dado tiene muchos mas entresijos, muchas mas aplicaciones, mas complejidad, se pueden combinar...pero...no las daré, por que ahora no hace falta, y hasta seguramente ya sepais todo lo que he puesto, pero bueno, nunca está de más repasar.<br />
En el segundo (Y ultimo sobre C por suerte) daré algunas cosas mas y ya está, por que dar esto me está costando mucho, y me gustaría saber vuestra opinión, si son muy malas directamente sigo con la NDS y no doy mas de C xD, por que es difícil, y no daré muchas cosas por que no me veo capaz de eplicarlas, ni se como darlas.</p>
<p>En definitiva, espero que esto haya servido un poco a adentraros en el C que tocaremos mas adelante, y que comenteis alguna cosilla.</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/programacion-nds-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Un Quad ha llegado a mi vida.</title>
		<link>http://www.nmadrid.com/un-quad-ha-llegado-a-mi-vida/</link>
		<comments>http://www.nmadrid.com/un-quad-ha-llegado-a-mi-vida/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 19:39:36 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[Mias Cosas]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=79</guid>
		<description><![CDATA[Pues entrada muy muy cortita, para decir que tal vez tarde algunos dias mas en postear algo nuevo, que me he comprado un nuevo pepino pc y entre lo que me ha costado que funcionen las versiones de 64 bits de los SO's, y todo el lio que me está dando meterle todo lo que [...]]]></description>
			<content:encoded><![CDATA[<p>Pues entrada muy muy cortita, para decir que tal vez tarde algunos dias mas en postear algo nuevo, que me he comprado un nuevo <span style="text-decoration: line-through;">pepino</span> pc y entre lo que me ha costado que funcionen las versiones de 64 bits de los SO's, y todo el lio que me está dando meterle todo lo que necesito, y por fin limpiar el portatil y dejarlo únicamente para lo que debería de usarse, pues tardaré algo mas, a ver si el domingo por la noche escribo algo nuevo.</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/un-quad-ha-llegado-a-mi-vida/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Alternate Reality Game (ARG)</title>
		<link>http://www.nmadrid.com/alternate-reality-game-arg/</link>
		<comments>http://www.nmadrid.com/alternate-reality-game-arg/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 20:26:57 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[ARG]]></category>

		<category><![CDATA[Planet Stratos]]></category>

		<category><![CDATA[alternate]]></category>

		<category><![CDATA[alternativo]]></category>

		<category><![CDATA[game]]></category>

		<category><![CDATA[realidad]]></category>

		<category><![CDATA[reality]]></category>

		<category><![CDATA[rol]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=75</guid>
		<description><![CDATA[“ARG (Alternate Reality Game), es un tipo de juego en el que a partir de una clave primigenia comienza una aventura en el que está invitado cualquiera que quiera participar. A través de mensajes, llamadas y páginas falsas, los jugadores intentan descubrir datos ocultos, resolver acertijos e interactuar con personajes de la trama para conseguir [...]]]></description>
			<content:encoded><![CDATA[<p><em>“ARG (Alternate Reality Game), es un tipo de juego en el que a partir de una clave primigenia comienza una aventura en el que está invitado cualquiera que quiera participar. A través de mensajes, llamadas y páginas falsas, los jugadores intentan descubrir datos ocultos, resolver acertijos e interactuar con personajes de la trama para conseguir información, lo que incluso puede llevar a los participantes a través de diversas localizaciones reales, como si fuera una gran “búsqueda del tesoro”. “</em></p>
<p>Busco un par de personas para desarrollar una pequeña trama, para hacerlo, si hay movimiento físico por algún lado, en Madrid y/o en cualquier lugar donde haya algún voluntario.<br />
Mi idea no es ponerlo en marcha ya, sino ir pensandolo todo para en Septiembre, a mediados, empezar con los preparativos y dejarlo apunto para empezar en Octubre.</p>
<p>Esto va con visión de "futuro", crecer un poco, montar una comunidad...</p>
<p>Y para acabar, nada mas... (Si, aún no he pensado mas, pero es que no me atrevo sin nadie mas, es algo demasiado...."complejo" por así decirlo.) "Ofreceros" por los comentarios, como teneis que poner vuestro email os contestaré por ahí, y nos organizamos ^^</p>
<p>De todas formas intentaré ir avanzando "yo solo" e ir mostrando avanzes o cosas que vaya pensando...</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/alternate-reality-game-arg/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tarjetas Flash para Nintendo DS</title>
		<link>http://www.nmadrid.com/tarjetas-flash-para-nintendo-ds/</link>
		<comments>http://www.nmadrid.com/tarjetas-flash-para-nintendo-ds/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 14:04:31 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[Nintendo DS]]></category>

		<category><![CDATA[Planet Stratos]]></category>

		<category><![CDATA[backup]]></category>

		<category><![CDATA[ds]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[NDS]]></category>

		<category><![CDATA[Nintendo]]></category>

		<category><![CDATA[tarjetas]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=73</guid>
		<description><![CDATA[No tenía pensado hacer esto, pero debido a que me han preguntado, hoy no tengo tiempo de poner un capítulo del manual, ni ganas de ponerme a escribir alguna otra cosa, hablo sobre esto, que es breve.
Basicamente, para cargar backups y software casero en nuestra Nintendo DS, las cosas han mejorado mucho. Antes hacía falta [...]]]></description>
			<content:encoded><![CDATA[<p>No tenía pensado hacer esto, pero debido a que me han preguntado, hoy no tengo tiempo de poner un capítulo del manual, ni ganas de ponerme a escribir alguna otra cosa, hablo sobre esto, que es breve.</p>
<p>Basicamente, para cargar backups y software casero en nuestra Nintendo DS, las cosas han mejorado mucho. Antes hacía falta un cartucho para el slot 1, y un passme, modificar el firmware de la Nintendo DS (Como se hace actualmente con la PSP mas o menos) y así no tener que usar el passme continuamente, vamos, un lío.</p>
<p>Ahora simplemente hace falta una tarjeta flash, que hay muchas, que se meten como un juego de NDS (slot 1) y listo.</p>
<ul>
<li>CycloDS Evolution</li>
<li>DSTT</li>
<li>EZ (V, V Plus)</li>
<li>M3 (Simply, Real)</li>
<li>R4 Revolution</li>
<li>Supercard (One, One SDHC)</li>
</ul>
<p>Y muchos muchos mas...</p>
<p>Yo recomiendo dos...</p>
<p><a href="http://www.r4ds.cn/download/r4.html" target="_blank">R4 Revolution</a><br />
<a href="http://www.m3adapter.com/" target="_blank">M3 (Simply y Real)</a></p>
<p>Acabo diciendo que yo uso M3 Real, me va perfectamente, y que solo me ha dado algún problema aislado en un año (Desde que la compré por mejorar mi cosa xD), y los problemas han sido: el Metal Slug 7 (Jap) me creaba partida salvada corrupta, que solucioné con versión inglesa, y Advance War se pillaba 1 segundo al mostrar el mapa de misiones (Casi ni se notaba), esto no he probado a solucionarlo por que ni me molesta.</p>
<p>Estas tarjetas tienen un pequeño slot para introducirlos una tarjeta MicroSD, en la que tendremos que meter los archivos necesarios para que funcione el cartucho, y los backups y todo el software caseo que queramos.</p>
<p>Por ejemplo, el pack que compré yo en ChipSpain es <a href="http://www.chipspain.com/m3-ds-real-rumble-ram-pack-version-micro-sdhc-4gb-p-1739.html">este</a>, en el que viene la M3 Real + RAM + Micro SD de 4gb, aunque 4gb es mucho para juegos de NDS, con 2gb rondas los 20 juegos dentro, imaginaos con una de 4gb...<br />
La M3 Real tiene dos complementos, RAM, que es para poder usar el navegador (Si no, no podrás usar el navegador "pirata", osea, el navegador original te viene con un "complemente" (Que no es mas que un cartucho para la zona de GBA) igual que es como una pequeña memoria RAM), y Rumble, que es para que la NDS vibre con determinados juegos. Recomiendo la RAM solo por que el vibrador es un escándalo, suena mucho, y da verguenza llevarlo puesto.</p>
<p>Cuando nos llega el paquete, con adaptador de tarjetas MicroSD a USB incluido, solo tenemos que ir a la página de M3, elegir nuestra tarjeta, bajar el zip que corresponda, meterlo en nuestra MicroSD, meter los backups, poner la tarjeta MicroSD en la tarjeta flash, la tarjeta flash como un juego de Nintendo DS y listo.</p>
<p>Esto que he explicado con la M3 Real es igual que con la mayoría, así que es un ejemplo mas o menos general.</p>
<p>No sé si se habrá entendido, con esto soy mas permisivo, ya que no es parte del manual, cualquier duda que tengais, la poneis en los comentarios y la contestaré lo antes que pueda con una posible solución.</p>
<p>Y no, no he puesto imágenes, por que, como ya he dicho, esto está escrito corriendo.</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/tarjetas-flash-para-nintendo-ds/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programacion NDS: &#8220;Hola Tenerife!&#8221;</title>
		<link>http://www.nmadrid.com/programacion-nds-2/</link>
		<comments>http://www.nmadrid.com/programacion-nds-2/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 16:02:12 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[Planet Stratos]]></category>

		<category><![CDATA[Programacion NDS]]></category>

		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[desarrollo]]></category>

		<category><![CDATA[manual]]></category>

		<category><![CDATA[NDS]]></category>

		<category><![CDATA[Nintendo DS]]></category>

		<category><![CDATA[palib]]></category>

		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=63</guid>
		<description><![CDATA[Yo es que, como estoy volando hacia Tenerife mientras hago esto, y yo no quiero saludar al mundo, sino a mi isla, que tengo ganas de llegar y volver a sus playitas, las fiestas, en la playita, y demás...
Programacion NDS: "Hola Tenerife!"
Antes que nada tendremos que explicar que cosas puede tener un proyecto de Nintendo [...]]]></description>
			<content:encoded><![CDATA[<p>Yo es que, como estoy volando hacia Tenerife mientras hago esto, y yo no quiero saludar al mundo, sino a mi isla, que tengo ganas de llegar y volver a sus playitas, las fiestas, en la playita, y demás...</p>
<h3>Programacion NDS: "Hola Tenerife!"</h3>
<p>Antes que nada tendremos que explicar que cosas puede tener un proyecto de Nintendo DS, y mas o menos como le doy uso a las carpetas:</p>
<p><span style="text-decoration: underline;"><strong>Carpetas:</strong></span></p>
<p><strong>source -&gt;</strong> Aquí introduciremos el código fuente, además de las imágenes cuando las usemos, dentro de una carpeta que llamaremos gfx.<br />
<strong>include -&gt;</strong> Contendrá los archivos de cabezera, los .h, que no usaremos al principio pero que llegará un momento en el que sean necesarios, o utiles, según se vea.<br />
<strong>data -&gt;</strong> Para la música por ejemplo, pero no lo usaremos por ahora.</p>
<p><span style="text-decoration: underline;"><strong>Archivos:</strong></span></p>
<p><strong>Makefile -&gt;</strong> Archivo que contiene todas las instrucciones para compilar el proyecto y convertir los archivos para que funcionen en la NDS.<br />
<strong>build.bat -&gt;</strong> Llame al Makefile...<br />
<strong>clean.bat -&gt;</strong> Limpia los archivos creados por el makefile.<br />
<strong>logo.bmp y logo_wifi.bmp -&gt;</strong> Los archivos que se muestran como imagen cuando intentamos enviar la room por wifi, o cuando lo lanzamos desde una tarjeta la pequeña imagen, como un logo vamos.<br />
<strong>project.vhw y project.vho -&gt;</strong> Archivos para llamar el proyecto desde el VisualHAM<br />
<strong>Template y Template.pnps -&gt;</strong> Para cargar el proyecto desde el Programer's Notepad.</p>
<p>Basicamente, al usar el build.bat compilaremos todo nuestro proyecto, y se crearán tres archivos, "Nombre.ds.gba", "Nombre.nds" y "Nombre.sc.nds". Obiamente el que nosotros queremos es el ".nds", que es el que se ejecutara en nuestra Nintendo.</p>
<p style="text-align: center;"><a href="http://www.nmadrid.com/wp-content/uploads/2008/08/compilando.jpg" rel="lightbox"><img class="size-medium wp-image-64 aligncenter" title="compilando" src="http://www.nmadrid.com/wp-content/uploads/2008/08/compilando.jpg" alt="compilando" /></a></p>
<p>Si quereis ver todos estos archivos id a la carpeta PAlibExamples e id, por ejemplo, a <em>\Text\Normal\HelloWorld</em>, podeis probar a ejecutar el archivo build, ejecutar y, aunque no entendais mucho ver si no ha habido error (Que no debería de haber ninguno), y si crea los tres archivos que queremos, lo probamos en nuestra NDS o emulador y ¡ahí está! Hemos compilado nuestro primer ¡Hola Mundo!</p>
<p style="text-align: center;"><a href="http://www.nmadrid.com/wp-content/uploads/2008/08/hello-tenerife.jpg" rel="lightbox"><img class="size-medium wp-image-65 aligncenter" title="hello-tenerife" src="http://www.nmadrid.com/wp-content/uploads/2008/08/hello-tenerife.jpg" alt="" width="262" height="264" /></a></p>
<p>Ahora volved atrás, hasta la carpeta devkitPro, <strong>buscad la carpeta PAlibTemplate, copiadla, y pegadla ahí mismo, ponerle el nombre que querais y entrad.</strong><br />
Como podeis ver están mas o menos las cosas que he eplicado antes, y es que esa carpeta que habeis copiado contiene una plantilla de un proyecto en PAlib, para no complicarnos siempre que queramos empezar algo nuevo creando todas las cosas.<br />
<strong>Os recomiendo que lo primero que hagais es borrar los archivos innecesarios, si usais VisualHAM o Programer's Notepad, borrar los archivos que correspondan al otro programa que no useis, si usais cualquier otro editor, borrad los dos o tres archivos "project" y los archivos Template (dos). Para que haya menos lío.</strong></p>
<p>Todo lo demás no lo tocaremos, simplemente abriremos el archivo main que se encuentra en la carpeta source (O el archivo Project, o Template, si usas uno de los dos programas predefinidos, que están ahí mismo), y tendremos esto:</p>
<p><strong>Nota: Como no he arreglado el que Wordpress me ponga los caracteres &lt; y &gt; dentro de código, será sustituido por los símbolos <strong>-( </strong>y <strong>)-</strong>, algo cutre, pero como solo es para ver los includes, bastará por ahora xD</strong></p>
<div class="igBar"><span id="lcpp-53"><a href="#" onclick="javascript:showCodeTxt('cpp-53'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-53">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">// Includes</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #339900;">#include&nbsp; -(PA9.h)-&nbsp; &nbsp; // Include for PA_Lib&nbsp; &amp;lt;y&amp;gt;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">// Function: main()</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> main<span style="color: #000000;">&#40;</span><span style="color: #0000ff;">int</span> argc, <span style="color: #0000ff;">char</span> ** argv<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_Init<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;&nbsp; &nbsp; <span style="color: #ff0000;">// Initializes PA_Lib</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_InitVBL<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>; <span style="color: #ff0000;">// Initializes a standard VBL</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">// Infinite loop to keep the program running</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">while</span> <span style="color: #000000;">&#40;</span><span style="color: #0000dd;color:#800000;">1</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_WaitForVBL<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">return</span> <span style="color: #0000dd;color:#800000;">0</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> <span style="color: #ff0000;">// End of main() </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>No se si habréis visto el contenido del main que había en el ejemplo "Hello World", si no lo habéis hecho, no os preocupeis, no lo he puesto por que quiero que partamos desde la plantilla para que, por ahora, solo observeis las línas básicas y obligatorias, y no empezemos por ahora con funciones que muestren texto y demás.</p>
<div class="igBar"><span id="lcpp-54"><a href="#" onclick="javascript:showCodeTxt('cpp-54'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-54">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">// Includes </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Todo lo que valla después de estas dos barras será un comentario, de una sola línea, desde que le demos a enter estaremos en una nueva línea y ya no será un comentario. Si quereis poner un comentario largo, que ocupe varias líneas, tendréis que poner:</p>
<div class="igBar"><span id="lcpp-55"><a href="#" onclick="javascript:showCodeTxt('cpp-55'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-55">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">/* Esto es un comentario</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">de varias lineas,</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">todas las que quieras</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">hombre ya!</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000; font-style: italic;">*/</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Los comentarios el compilador no los toma en cuenta, así nos sirven para documentar todo lo que hagamos y así otras personas que toquen nuestro código puedan entenderlo por que nosotros lo explicamos.</p>
<div class="igBar"><span id="lcpp-56"><a href="#" onclick="javascript:showCodeTxt('cpp-56'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-56">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #339900;">#include -(PA9.h)-&nbsp; &nbsp; // Include for PA_Lib </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Pues una línea básica, en la que incluimos la cabezera <strong>PA9.h</strong>, esencial para cargar todas las funciones de PAlib, si sabeis C/C++, pues no se incluye stdio ni iostream por que, ni usaremos por ahora nada de C++ (iostream), y por que <strong>PA9.h</strong> ya se encarga de llamar a la cabezera studio.h<br />
Esta linea hace que funcione todo lo que pongamos abajo, si falta, no funcionará, así que no se os olvide nunca, y SIEMPRE tiene que ir la primera<br />
Lo que sigue a las barras, como ya he dicho, y no volveré a decir, es un comentario.</p>
<div class="igBar"><span id="lcpp-57"><a href="#" onclick="javascript:showCodeTxt('cpp-57'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-57">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">int</span> main<span style="color: #000000;">&#40;</span><span style="color: #0000ff;">int</span> argc, <span style="color: #0000ff;">char</span> ** argv<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Esta línea "crea" la función principal main. Esta función es la principal del programa, esencial, y única. Las funciones, y sus argumentos, las explicaré en un breve capítulo sobre C, por que sino se mezclan muchas cosas. El contenido de la función va entre corchetes.</p>
<div class="igBar"><span id="lcpp-58"><a href="#" onclick="javascript:showCodeTxt('cpp-58'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-58">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_Init<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;&nbsp; &nbsp; <span style="color: #ff0000;">// Initializes PA_Lib</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_InitVBL<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>; <span style="color: #ff0000;">// Initializes a standard VBL </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Llamada a dos funciones indispensables:<br />
La función <strong>PA_Init()</strong> inicializa las PAlib, esto hace que puedas empezar a usar todas sus funciones, el texto, sprites, etc.<br />
La función <strong>PA_InitVBL()</strong> inicializa la sincronización con la pantalla de la NDS a 60 frames por segundo.<br />
Como puedes ver, dos funciones indispensables nada mas empezar.</p>
<div class="igBar"><span id="lcpp-59"><a href="#" onclick="javascript:showCodeTxt('cpp-59'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-59">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">while</span> <span style="color: #000000;">&#40;</span><span style="color: #0000dd;color:#800000;">1</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PA_WaitForVBL<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Un bucle infinito. Básicamente el juego funciona como un bucle infinito, que se va repitiendo una y otra vez. No explicaré esto en profundidad ahora, lo irás comprendiendo según avanzemos, dandote cuenta de como funciona un videojuego, o por lo menos lo intentaré.</p>
<p>En este bucle interno vemos la función <strong>PA_WaitForVBL()</strong>, que no es mas que una sincronización a 60 fps (frames por segundo) que viene predefinida por defecto, y que se puede cambiar, pero no os diré como ahora.</p>
<div class="igBar"><span id="lcpp-60"><a href="#" onclick="javascript:showCodeTxt('cpp-60'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C++:</span>
<div id="cpp-60">
<div class="cpp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">return</span> <span style="color: #0000dd;color:#800000;">0</span>;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span> <span style="color: #ff0000;">// End of main() </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Devolvemos un 0 (return 0;) si todo ha ido bien, entenderás esto en no mucho tiempo, si no lo entiendes ya claro.<br />
Los corchetes para cerrar la función main.</p>
<p>No te preocupes si no has entendido mucho, ya has entendido mas de lo que crees, has aprendido a compilar los proyectos, algo importante, cada vez que hagas un cambio simplemente tendrás que ejecutar el build.bat, eliminará los archivos anteriores, y creará unos nuevos según los cambios. Además, ya empiezas a intuir funciones básicas y necesarias.</p>
<p>La próxima vez veremos..no lo sé...creo que mostraré algo de C, antes de ponerme a mostrar funciones y demás...si hay alguien que lo lee que no sabe que son funciones...mal...es mas...debería haber mostrado primero algo de C y después esto, pero hay que darle preferencia a los que va dirigido esto, a los que saben algo de C.</p>
<p>Lo dejamos aquí, siendo este capítulo uno que no me ha gustado mucho como ha quedado...espero que no tan mal y lo hayais entendido, dadme sugerencias y quejas ^^</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/programacion-nds-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programacion NDS: Complementos para ir a la moda</title>
		<link>http://www.nmadrid.com/programacion-nds-1/</link>
		<comments>http://www.nmadrid.com/programacion-nds-1/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 19:10:11 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[Planet Stratos]]></category>

		<category><![CDATA[Programacion NDS]]></category>

		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[desarrollo]]></category>

		<category><![CDATA[manual]]></category>

		<category><![CDATA[NDS]]></category>

		<category><![CDATA[Nintendo DS]]></category>

		<category><![CDATA[palib]]></category>

		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=35</guid>
		<description><![CDATA[Que si, el título es muy cutre, pero no quería poner algo típico como "Primeros pasos", o algo así, así que lo dejo así.
Una cosa que no dejé clara en el anterior entrada sobre este tema es que todo lo que diga lo haré teniendo en cuenta que estáis trabajando bajo Windows, ya que es [...]]]></description>
			<content:encoded><![CDATA[<p>Que si, el título es muy cutre, pero no quería poner algo típico como "Primeros pasos", o algo así, así que lo dejo así.</p>
<p>Una cosa que no dejé clara en el anterior entrada sobre este tema es que todo lo que diga lo haré teniendo en cuenta que estáis trabajando bajo Windows, ya que es el mas extendido y del único del que dispongo ahora por una muerte prematura de mi PC y poco dinero, así que empezamos...</p>
<h3><strong>Complementos para ir a la moda:</strong></h3>
<p>Bueno, para trabajar hay flexibilidad, se pueden usar muchas herramientas diferentes, pero como es obvio, yo trabajo con unas determinadas herramientas, y vosotros, si podeis hacerlo, o preguntais y yo se, lo podeis hacer con otras, todo depende de lo que te guste usar.</p>
<p>Lo primero, si no tienes el <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;DisplayLang=en" target="_blank">.NET Framework</a> tenéis que descargarlo, <strong>pulsando encima iréis directos</strong> ^^</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.devkitpro.org/wordpress/wp-content/themes/fluidity/images/devkitlogo.png" alt="devkitpro" width="400" height="119" /></p>
<p>Ahora os <strong>tendréis que bajar el <a href="http://sourceforge.net/project/platformdownload.php?group_id=114505" target="_blank">DevkitPro</a></strong>, que se puede usar además para programar en otras plataformas como PSP, pero que nosotros (No en estos manuales) no usaremos.<br />
La instalación es sencilla, y no la explicaré, recomiendo dejar la ruta por defecto y aseguraos, si no lo haceis, de que en la ruta ninguna carpeta tiene espacios:</p>
<p>C:\Archivos de programa\DevKitPro  --- Esta dará problemas<br />
C:\DevKitPro   -   Esta no al no tener espacios</p>
<p>Los problemas, no los dará al instalar, sino al intentar compilar para sacar el archivo .nds, por lo que estad atentos.</p>
<p>Tras instalarlo, tendréis que ir a la carpeta de la instalación y renombrar la carpeta devkitARM por devkitARM_vX (O lo que querais). Os bajais el <a href="http://sourceforge.net/project/showfiles.php?group_id=114505&amp;package_id=124207&amp;release_id=481692">devkitARM r20</a> y lo desempaquetais y lo poneis en la carpeta del devkitPro con el nombre devkitARM.<br />
Esto lo hacemos por que las PAlib no suelen ser compatibles con la última versión del devkitARM, y da problemas, así que así nos quitamos de lio. De todas formas puedes probar a compilar un ejemplo de los que vienen con las PAlib (Ahora las instalaremos y enseñaremos a compilar un proyecto) y probar si funciona, si no lo hace será por la versión del devkitARM</p>
<p style="text-align: center;"><a rel="lightbox" href="http://www.nmadrid.com/wp-content/images/palib_logo1.png"><img class="size-full wp-image-32 aligncenter" title="palib_logo" src="http://www.nmadrid.com/wp-content/uploads/2008/07/palib_logo1.png" alt="PAlib Logo" width="375" height="165" /></a></p>
<p>Ya instalado el <strong>DevkitPro correcto y compatible con PAlib, nos descargaremos el <a href="http://forum.palib.info/" target="_blank">instalador de PAlib</a> y lo instalaremos en la misma carpeta que el DevkitPro</strong>, para eso vamos al link y nos llevara a la página principal y pulsamos en "latest PAlib version"</p>
<p style="text-align: center;"><a href="http://www.nmadrid.com/wp-content/uploads/2008/08/notepad_plus.jpg" rel="lightbox"><img class="size-full wp-image-56 aligncenter" title="notepad_plus" src="http://www.nmadrid.com/wp-content/uploads/2008/08/notepad_plus.jpg" alt="" width="400" height="73" /></a></p>
<p>Ya instalado todo esto tenemos la opción de usar el editor de código que nos viene por defecto, error, que nos vienen por defecto, ya que vienen dos: Programer's Notepad y el VisualHAM, aunque yo sinceramente no tengo gusto por ninguno de los dos y por eso tengo desde hace mucho, y para casi todo <a href="http://notepad-plus.sourceforge.net/es/site.htm">Notepad++</a>, si queréis este, es tan fácil como pulsar encima del enlace que os he puesto, ir a <strong><em>Descargas</em></strong> y pulsar donde pone <strong><em>Descargar los ejecutables de Notepad++</em></strong>, muy sencilla la instalación, y nos aparecerá, al pulsar con el click derecho encima de casi cualquier archivo, <strong><em>"Edit with Notepad++"</em></strong>, práctico, sencillo, y con una gran variedad de lenguajes compatibles (El tema del coloreado y demás).</p>
<p style="text-align: center;"><a href="http://www.nmadrid.com/wp-content/uploads/2008/08/nintendods_logo1.jpg" rel="lightbox"><img class="size-medium wp-image-54 aligncenter" title="nintendods_logo1" src="http://www.nmadrid.com/wp-content/uploads/2008/08/nintendods_logo1.jpg" alt="nintendods_logo" width="200" height="150" /></a></p>
<p>¡Ya está! Hemos acabado de instalar todo lo necesario para una programación sencilla en Nintendo DS, eso si, ¿Como piensas probarlo? Pasarlo a una tarjeta MicroSD y probarlo en la DS a cada rato es un coñazo, sobre todo si estás probando coordenadas y vas usando el método "ensayo-error" para conseguir poner las letras centradas, <strong>así que para eso necesitaremos un emulador.</strong></p>
<p><strong>Yo conozco cuatro</strong>, prueba tu el que mas te guste y usa ese para probar tus juegos, aunque te <strong>recomiendo tener mínimo dos instalados</strong>, y que, cuando en el emulador pase algo que no te parezca lógico, vamos, que estés seguro 100% de que debería hacer algo que no hace, pruebalo en el otro, y puede que sea culpa del emulador y no tuya.</p>
<p><strong><a href="http://dualis.1emulation.com/" target="_blank">Dualis</a> </strong>No lo he usado.<br />
<strong><a href="http://spazioinwind.libero.it/linoma/ideas.html">iDeas</a></strong> Tampoco lo he usado xD.<br />
<strong><a href="http://desmume.sourceforge.net/">Desmume</a></strong> Es el que uso siempre, ya que por ahora no me ha dado ningún error al interpretar las PAlib, pero no permite muchas cosas, y tiene problemas con las rotaciones.<br />
<strong><a href="http://nocash.emubase.de/gba.htm">No$gba</a></strong> Es el mejor, permite de todo, pero suele interpretar cosas sencillas mal, como el esperar el refresco de pantalla cuando, por ejemplo, esperas a que un usuario toque la pantalla.</p>
<p>Dista decir que, <strong>los fallos los tienen los emuladores, en la Nintendo DS todo funciona como debería</strong>, así que aunque en los emuladores haya fallos, si lo habéis hecho bien, en la DS debería funcionar, si ahí tampoco, algo habréis hecho mal <img src='http://www.nmadrid.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>No explicaré ni el Hardware necesario para cargar copias de seguridad y software casero en la DS, ni explicaré donde hay que ponerlos</strong>, es obvio que los que usaremos serán los .nds, y si estás aquí es aguantando esto es por que tienes una Nintendo DS y alguna tarjeta flash para probarlo todo cuando esté hecho.</p>
<p>Lamentablemente esto me está quedando muy largo, así que por este post paramos, que mi idea es que esto se base en post no muy grandes, para poder ir avanzando de a poco a menudo, y no cada mucho. <strong>Por ahora hemos instalado lo que necesitaremos para poder programar para nuestra consola portatil , en el próximo capítulo (Como en las series!), ya empezaremos a tocar nuestros primeros códigos y a compilar las cosas para que las veamos funcionar en nuestra NDS (O en el emulador).</strong></p>
<p>Bueno, espero que no hayas tenido problemas en nada, si teneis dudas, ánimos, amenazas, proposiciones decentes o indecentes, etc, comentad.</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/programacion-nds-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Space Base Battle Online</title>
		<link>http://www.nmadrid.com/space-base-battle-online/</link>
		<comments>http://www.nmadrid.com/space-base-battle-online/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 09:30:02 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[Proyectos]]></category>

		<category><![CDATA[base]]></category>

		<category><![CDATA[battle]]></category>

		<category><![CDATA[desarrollo]]></category>

		<category><![CDATA[Game Maker]]></category>

		<category><![CDATA[GM]]></category>

		<category><![CDATA[online]]></category>

		<category><![CDATA[Programacion]]></category>

		<category><![CDATA[proyecto]]></category>

		<category><![CDATA[space]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=49</guid>
		<description><![CDATA[
He añadido la página del Space Base Battle Online al blog arriba, al lado de home, con toda la información sobre el proyecto, que se va actualizando cada X tiempo, iré avisando por aquí las actualizaciones ^^.
Bye-nee
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" src="http://img71.imageshack.us/img71/5660/barradecargaparatitulojb6.png" alt="Space Base Battle Online" /></p>
<p>He añadido la página del <strong><a href="http://www.nmadrid.com/space-base-battle-online/" target="_blank">Space Base Battle Online</a></strong> al blog arriba, al lado de home, con toda la información sobre el proyecto, que se va actualizando cada X tiempo, iré avisando por aquí las actualizaciones ^^.</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/space-base-battle-online/feed/</wfw:commentRss>
		</item>
		<item>
		<title>El Médano</title>
		<link>http://www.nmadrid.com/el-medano/</link>
		<comments>http://www.nmadrid.com/el-medano/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 07:27:04 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[Mias Cosas]]></category>

		<category><![CDATA[Vacaciones]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=37</guid>
		<description><![CDATA[ Pues a esta playa (Mas bien, cerca de ella) me voy estas vacaciones, como todas mis vacaciones.
Me voy a mi pueblo, Granadilla de Abona, Tenerife, a pasar desde hoy, que cojo el vuelo a las 17:15 exactamente, hasta el Domingo 17, saliendo de allí a las 19:50, no está nada mal ¿no?
Esta playa que [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="http://www.nmadrid.com/wp-content/uploads/2008/08/medano.jpeg"><img class="size-full wp-image-38 alignleft" title="medano_peque" src="http://www.nmadrid.com/wp-content/uploads/2008/08/medano_peque.jpg" alt="medano, tenerife" hspace="3" width="213" height="142" /></a> Pues a esta playa (Mas bien, cerca de ella) me voy estas vacaciones, como todas mis vacaciones.</p>
<p><strong>Me voy a mi pueblo, Granadilla de Abona, Tenerife</strong>, a pasar desde hoy, que cojo el vuelo a las 17:15 exactamente, hasta el Domingo 17, saliendo de allí a las 19:50, no está nada mal ¿no?<br />
Esta playa que muestro (Que si pulsais encima, se verá mas grande) arriba es <strong>la playa de El Médano</strong>, pueblo cercano al mio, y perteneciente al municipio de Granadilla, y es un lugar al que llevo yendo 18 años, muchas veces a lo largo de todo el año, aunque este 2008 se ha presentado tan negro en cuanto a playa, que tiemblo de los nervios de pensar que mañana iré a la playa por fin después de tanto tiempo, aunque, posiblemente, esta noche acabe de fiesta por zona playa según parece,  y acabaré bañandome...<a href="http://www.nmadrid.com/wp-content/uploads/2008/08/vistas_granadilla.jpg" rel="lightbox"><img class="size-full wp-image-41 alignright" title="vistas_granadilla" src="http://www.nmadrid.com/wp-content/uploads/2008/08/vistas_granadilla.jpg" alt="" width="228" height="171" /></a></p>
<p>Bueno, hace unos meses Granadilla no le sonaría a nadie, pero, ¿A ti te ha sonado ahora? Pues, si no has caido en la cuenta aún, <strong>Miss España 2008, quien hubiera ido a Miss Universo si no hubiera tenido una edad demasiado corta, vivía en el mismo pueblo que yo, estudiaba en el mismo instituto que yo, y si, la conocía y todo</strong>, pero bueno, hace tanto que dejé el pueblo, y la fama borra tanto la mente..., aunque sincermanete me da igual.</p>
<p>Y nada mas. <strong>Me pasaré por muchos sitios, por mas playas, por el teide, vamos, como he hecho siempre al ser natural de allí</strong>, pero, sinceramente, esta vez con mas cariño, con mas ganas de verlo todo ya que, durante este año, he aprendido muchas cosas, y una de ellas es que <strong>no apreciamos lo que tenemos hasta que lo perdemos</strong>....y yo hecho mucho de menos Tenerife.</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/el-medano/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programando videojuegos en Nintendo DS</title>
		<link>http://www.nmadrid.com/programando-videojuegos-en-nintendo-ds/</link>
		<comments>http://www.nmadrid.com/programando-videojuegos-en-nintendo-ds/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 08:44:17 +0000</pubDate>
		<dc:creator>Worvast</dc:creator>
		
		<category><![CDATA[Planet Stratos]]></category>

		<category><![CDATA[Programacion NDS]]></category>

		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[desarrollo]]></category>

		<category><![CDATA[NDS]]></category>

		<category><![CDATA[Nintendo DS]]></category>

		<category><![CDATA[palib]]></category>

		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://www.nmadrid.com/?p=30</guid>
		<description><![CDATA[
"Programando Videojuegos en Nintendo DS" será una serie de manuales que intentaré ir poniendolos a menudo, no cada dos años, y en el que trataré desde la instalación de todo lo que usaremos para programar videojuegos en NDS, nociones básicas de C/C++, que será el lenguaje que usaremos, hasta el desarrollo de juegos de ejemplo [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a rel="lightbox" href="http://www.nmadrid.com/wp-content/images/palib_logo1.png"><img class="size-full wp-image-32 aligncenter" title="palib_logo" src="http://www.nmadrid.com/wp-content/uploads/2008/07/palib_logo1.png" alt="PAlib Logo" width="375" height="165" /></a></p>
<p><em><strong>"Programando Videojuegos en Nintendo DS"</strong></em> será una serie de manuales que intentaré ir poniendolos a menudo, no cada dos años, y en el que <strong>trataré desde la instalación de todo lo que usaremos para programar videojuegos en NDS, nociones básicas de C/C++, que será el lenguaje que usaremos, hasta el desarrollo de juegos de ejemplo (Básicos, obviamente).</strong></p>
<p>Todo esto irá algo lento, entre trabajar la universidad, mis proyectos y TODO pues es un lío, pero esta es la mejor manera de ir yo avanzando, escribiendo sobre lo ya aprendido para "obligarme" en cierta parte a seguir con ello.</p>
<p>De momento no escribiré nada, mañana en el avión rumbo a mis vacaciones trabajaré el <strong>primer capitulo en donde instalaremos, configuraremos (Cutremente) y probaremos nuestro primer código</strong>, por que, como no, empezaremos con un clásico "Hola Mundo". También hablaré de alguna cosilla mas, pero no quiero hablar sin hacer nada, así que ya lo veréis, aunque no sean de una calidad para hacer los videojuegos con los que siempre soñasteis, pero eso no lo harás leyendote otros manuales, yo lo que quiero que aprendais, lo que quiero que aprendas, es como debería ser, con una buena base, juegos básicos, y alguien que te pueda ayudar cuando te salgan dudas de verdad (No tonterías xD).</p>
<p>Por cierto, los manuales irán bajo el nombre: <em><strong>Programacion NDS: "Nombre del Tema"</strong></em><br />
Donde los espacios en blanco será el título del tema, por que sino los títulos me quedarán quilométricos si lo pongo como hoy, e irán "encajados" en la categoría <em><strong>"Programacion NDS"</strong></em>, por si os interesa saberlo.</p>
<p>Aquí comienza...la actividad de mi blog, disculpen la perdida de tiempo y las faltas de horto-grafía.</p>
<p><span style="color: #ff00ff;">Bye-nee</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nmadrid.com/programando-videojuegos-en-nintendo-ds/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
