<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4731341420311507015</id><updated>2011-07-30T12:04:11.080-07:00</updated><category term='librerías'/><category term='nombre'/><category term='almacenamiento'/><category term='programación'/><category term='vacaciones'/><category term='implementación'/><category term='bugs'/><category term='código'/><category term='planes'/><category term='versiones'/><category term='ping'/><category term='video'/><category term='interfaz'/><category term='gráficos'/><category term='música'/><category term='diseño'/><category term='licencia'/><category term='alojamiento'/><category term='binario'/><category term='trabajo'/><category term='codigo'/><category term='worklogger'/><title type='text'>the aberrant</title><subtitle type='html'>Diario de creación de "The Aberrant"</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>60</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-8910999786567828793</id><published>2010-04-27T08:02:00.000-07:00</published><updated>2010-04-27T08:02:10.894-07:00</updated><title type='text'>FormulaRetro alpha 13</title><content type='html'>&lt;a href="https://sourceforge.net/projects/formularetro/"&gt;FormulaRetro | Get FormulaRetro at SourceForge.net&lt;/a&gt;&lt;br /&gt;Echadle un vistazo :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-8910999786567828793?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://sourceforge.net/projects/formularetro/' title='FormulaRetro alpha 13'/><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/8910999786567828793/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=8910999786567828793' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8910999786567828793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8910999786567828793'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2010/04/formularetro-alpha-13.html' title='FormulaRetro alpha 13'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4911338826167626403</id><published>2010-02-14T14:52:00.000-08:00</published><updated>2010-02-14T14:53:41.138-08:00</updated><title type='text'>Página de Formula Retro</title><content type='html'>&lt;a href="http://formularetro.sourceforge.net/"&gt;Formula Retro&lt;/a&gt;&lt;br /&gt;Poco a poco va tomando forma.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4911338826167626403?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4911338826167626403/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4911338826167626403' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4911338826167626403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4911338826167626403'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2010/02/pagina-de-formula-retro.html' title='Página de Formula Retro'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-1951444944498979748</id><published>2010-01-21T02:49:00.000-08:00</published><updated>2010-01-21T02:56:15.183-08:00</updated><title type='text'>Nuevo proyecto.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k5sPNvPVybU/S1gywfJlsmI/AAAAAAAABOM/tDAvlfAohjU/s1600-h/12662_105191679494996_100000124947791_135871_7545836_n.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 248px;" src="http://1.bp.blogspot.com/_k5sPNvPVybU/S1gywfJlsmI/AAAAAAAABOM/tDAvlfAohjU/s320/12662_105191679494996_100000124947791_135871_7545836_n.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5429145159371960930" /&gt;&lt;/a&gt;&lt;br /&gt;Desde que terminé Teclas Divertidas, he empezado &lt;a href="http://sourceforge.net/projects/formularetro/"&gt;Formula Retro&lt;/a&gt;. Un jueguecillo de coches. Estoy utilizando &lt;a href="http://irrlicht.sourceforge.net/"&gt;Irrlicht&lt;/a&gt; para los gráficos y &lt;a href="http://mikmod.raphnet.net/"&gt;Mikmod&lt;/a&gt; para el sonido. Mi idea es pasarlo a alguna plataforma comercial e intentar venderlo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-1951444944498979748?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/1951444944498979748/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=1951444944498979748' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1951444944498979748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1951444944498979748'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2010/01/nuevo-proyecto.html' title='Nuevo proyecto.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k5sPNvPVybU/S1gywfJlsmI/AAAAAAAABOM/tDAvlfAohjU/s72-c/12662_105191679494996_100000124947791_135871_7545836_n.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-351474377359683688</id><published>2009-10-21T10:07:00.001-07:00</published><updated>2009-10-21T10:07:37.989-07:00</updated><title type='text'>Teclas Divertidas terminado.</title><content type='html'>Más información en:&lt;br /&gt;&lt;br /&gt;&lt;a href=http://sites.google.com/site/teclasdivertidas/&gt;http://sites.google.com/site/teclasdivertidas/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-351474377359683688?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/351474377359683688/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=351474377359683688' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/351474377359683688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/351474377359683688'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/10/teclas-divertidas-terminado.html' title='Teclas Divertidas terminado.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-5933497277566448031</id><published>2009-10-15T02:33:00.001-07:00</published><updated>2009-10-15T02:33:17.467-07:00</updated><title type='text'>Tercera y última alpha 3 de Teclas Divertidas.</title><content type='html'>Este pesa bastante más y tiene &lt;b&gt;¡100% más sonido!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=http://www.easy-share.com/1908134138/teclasdivertidas_alpha3.zip&gt;http://www.easy-share.com/1908134138/teclasdivertidas_alpha3.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-5933497277566448031?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/5933497277566448031/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=5933497277566448031' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5933497277566448031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5933497277566448031'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/10/tercera-y-ultima-alpha-3-de-teclas.html' title='Tercera y última alpha 3 de Teclas Divertidas.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-6971137829873729353</id><published>2009-09-30T09:07:00.001-07:00</published><updated>2009-09-30T09:07:36.472-07:00</updated><title type='text'>Segunda alpha de Teclas Divertidas.</title><content type='html'>Para descargar en el siguiente enlace:&lt;br /&gt;&lt;br /&gt;&lt;a href=http://www.easy-share.com/1907962184/teclasdivertidas_alpha2.zip&gt;http://www.easy-share.com/1907962184/teclasdivertidas_alpha2.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-6971137829873729353?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/6971137829873729353/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=6971137829873729353' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6971137829873729353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6971137829873729353'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/09/segunda-alpha-de-teclas-divertidas.html' title='Segunda alpha de Teclas Divertidas.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4540548924218964689</id><published>2009-09-06T05:31:00.001-07:00</published><updated>2009-09-06T05:31:43.008-07:00</updated><title type='text'>Primera alpha de Teclas Divertidas.</title><content type='html'>Aquí:&lt;br /&gt;&lt;br /&gt;&lt;a href=http://www.easy-share.com/1907650078/teclasdivertidas.zip&gt;http://www.easy-share.com/1907650078/teclasdivertidas.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4540548924218964689?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4540548924218964689/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4540548924218964689' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4540548924218964689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4540548924218964689'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/09/primera-alpha-de-teclas-divertidas.html' title='Primera alpha de Teclas Divertidas.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-1731771665758614501</id><published>2009-08-24T09:53:00.001-07:00</published><updated>2009-08-24T09:54:45.625-07:00</updated><title type='text'>Teaser Teclas divertidas</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_k5sPNvPVybU/SpLFn1cm_JI/AAAAAAAAAK4/5JB33Dqm5w4/s1600-h/teclasdivertidas_20090824.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 248px;" src="http://2.bp.blogspot.com/_k5sPNvPVybU/SpLFn1cm_JI/AAAAAAAAAK4/5JB33Dqm5w4/s320/teclasdivertidas_20090824.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5373574593559067794" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-1731771665758614501?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/1731771665758614501/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=1731771665758614501' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1731771665758614501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1731771665758614501'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/08/teaser-teclas-divertidas.html' title='Teaser Teclas divertidas'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_k5sPNvPVybU/SpLFn1cm_JI/AAAAAAAAAK4/5JB33Dqm5w4/s72-c/teclasdivertidas_20090824.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4689593092986267138</id><published>2009-08-20T01:25:00.001-07:00</published><updated>2009-08-20T01:25:43.403-07:00</updated><title type='text'>Polimorfismo.</title><content type='html'>&lt;b&gt;En C++, a un puntero declarado como una clase A se le puede asignar una instancia de una clase B si éste es hijo de A.&lt;/b&gt;&lt;br /&gt;Utilizo esta técnica para las escenas de mi nuevo proyecto, de tal forma que dentro un bucle principal que se encarga del refresco de la pantalla continuamente, se llama a un método de una clase instanciada en un puntero. Este puntero esta declarado como tipo "ClaseEscena" y tiene un método virtual que se encarga de actualizar los sprites. Sin embargo, en cada momento este puntero tiene una instancia de una clase hija de la "ClaseEscena", que implementa el método virtual de acuerdo con la escena de ese momento. Así, con un mismo bucle principal, tengo diferentes animaciones según convenga al juego.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4689593092986267138?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4689593092986267138/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4689593092986267138' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4689593092986267138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4689593092986267138'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/08/polimorfismo.html' title='Polimorfismo.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-5350755202053548754</id><published>2009-08-14T08:52:00.000-07:00</published><updated>2009-08-14T08:57:35.431-07:00</updated><title type='text'>Retomamos aficiones y dibujamos un poquito.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_k5sPNvPVybU/SoWJHRerJNI/AAAAAAAAAKY/jCpmlh28Cm8/s1600-h/htile_nubes01.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 148px;" src="http://4.bp.blogspot.com/_k5sPNvPVybU/SoWJHRerJNI/AAAAAAAAAKY/jCpmlh28Cm8/s320/htile_nubes01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5369848888753333458" /&gt;&lt;/a&gt;&lt;br /&gt;Hace mucho que no escribo nada aquí, pero sigo vivo. Vuelvo a tener &lt;span style="font-weight:bold;"&gt;tiempo libre&lt;/span&gt;, por lo que me he puesto a programar otra vez y he retomado este blog que, según las estadísticas, &lt;span style="font-weight:bold;"&gt;no lee nadie&lt;/span&gt; desde hace al menos 5 meses. Más o menos el tiempo que he estado ocupado.&lt;br /&gt;&lt;br /&gt;¡Volvemos a programar! Esta vez me propongo un reto un poco más fácil. Imitar un viejo juego de Spectrum y Commodore 64 que se llamaba "&lt;span style="font-weight:bold;"&gt;Teclas Divertidas&lt;/span&gt;", aunque The Aberrant no está olvidado. Ya he creado un esqueleto con un bucle principal y tengo que crear un sistema de escenas y gestión de animaciones y respuesta a eventos.&lt;br /&gt;&lt;br /&gt;De momento, pongo unas nubes que irán en la presentación del juego.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-5350755202053548754?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/5350755202053548754/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=5350755202053548754' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5350755202053548754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5350755202053548754'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/08/retomamos-aficiones-y-dibujamos-un.html' title='Retomamos aficiones y dibujamos un poquito.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_k5sPNvPVybU/SoWJHRerJNI/AAAAAAAAAKY/jCpmlh28Cm8/s72-c/htile_nubes01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4350952300572492879</id><published>2009-08-14T08:47:00.001-07:00</published><updated>2009-08-14T08:47:15.891-07:00</updated><title type='text'>Prueba desde Facebook.</title><content type='html'>Estoy escribiendo este post desde una aplicación de Facebook para probar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4350952300572492879?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4350952300572492879/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4350952300572492879' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4350952300572492879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4350952300572492879'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/08/prueba-desde-facebook.html' title='Prueba desde Facebook.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-5655493022520788267</id><published>2009-03-08T01:22:00.000-08:00</published><updated>2009-03-08T03:15:34.544-07:00</updated><title type='text'>De vuelta en casa y curvas.</title><content type='html'>Ahora vivo en &lt;span style="font-weight: bold;"&gt;mi propia casa&lt;/span&gt;. Una cosa en la lista menos :)&lt;br /&gt;&lt;br /&gt;Desde hace mucho tiempo siempre quise hacer una cosa en mis animaciones: curvas. Siempre he querido hacer que un sprite se mueva como en las presentaciones de los juegos de &lt;span style="font-weight: bold;"&gt;CAPCOM o SNK&lt;/span&gt;. La foto de un luchador haciendo pose que viene desde fuera de la pantalla a mucha velocidad y suavemente se coloca en la en su posición.&lt;br /&gt;Para conseguier este efecto primero pensé en utilizar tablas de senos y cosenos para añadir un modificador a una funcion lineal simple. Pero siempre que lo intenté implementar, ni siquiera conseguí compilar.&lt;br /&gt;Desde hace un tiempo tengo &lt;a href="http://www.amazon.co.uk/Mathematics-Programming-Computer-Graphics-Development/dp/1584502770/ref=pd_cp_b_0?pf_rd_p=212521391&amp;amp;pf_rd_s=center-41&amp;amp;pf_rd_t=201&amp;amp;pf_rd_i=1584500379&amp;amp;pf_rd_m=A3P5ROKL5A1OLE&amp;amp;pf_rd_r=1EYBMCZSK7GTGWENSTKH"&gt;este libro de matemáticas para juegos&lt;/a&gt;. En uno de los capítulos, tras unas sesudas demostraciones matemáticas, enseña las fórmulas que describen cómo hallar un vector que interpola otros cuatro que describen el punto inicial, final y dos modificadores. En otras palabras, curvas Hermite y Beizer:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;claseVector2D curvaHermite(Uint32 tInicial, Uint32 tFinal, Uint32 tAhora, claseVector2D p1, claseVector2D p2, claseVector2D t1, claseVector2D t2){&lt;br /&gt;    claseVector2D H(0,0);&lt;br /&gt;    if ((tAhora &gt; tFinal)||(tAhora &lt; tInicial)) return H;&lt;br /&gt;    double t=(double)(tAhora-tInicial)/(double)(tFinal-tInicial); // t es un valor entre 0 y 1&lt;br /&gt;    //printf("%f , %d, %d, %d\n",t,tInicial,tFinal,tAhora); // debug&lt;br /&gt;    H=((1-(3*t*t)+(2*t*t*t))*p1)+(((t*t)*(3-2*t))*p2)+(t*((t-1)*(t-1))*t1)+(((t*t)*(t-1))*t2);&lt;br /&gt;    return H;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;claseVector2D curvaBeizer(Uint32 tInicial, Uint32 tFinal, Uint32 tAhora, claseVector2D p0, claseVector2D p3, claseVector2D p1, claseVector2D p2){&lt;br /&gt;    claseVector2D B(0,0);&lt;br /&gt;    if ((tAhora &gt; tFinal)||(tAhora &lt; tInicial)) return B;&lt;br /&gt;    double t=(double)(tAhora-tInicial)/(double)(tFinal-tInicial); // t es un valor entre 0 y 1&lt;br /&gt;    B=(((1-t)*(1-t)*(1-t))*p0)+(((3*t)*((1-t)*(1-t)))*p1)+(((3*(t*t))*(1-t))*p2)+((t*t*t)*p3); // se puede optimizar esta formula calculando (1-t) y pasandolo a una variable&lt;br /&gt;    return B;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Simple y eficiente. En otro post explico la implementación de "claseVector2D".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-5655493022520788267?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/5655493022520788267/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=5655493022520788267' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5655493022520788267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5655493022520788267'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/03/de-vuelta-en-casa-y-curvas.html' title='De vuelta en casa y curvas.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-2171439484329631095</id><published>2009-02-07T15:07:00.000-08:00</published><updated>2009-02-07T15:15:08.460-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='planes'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Sensación extraña</title><content type='html'>Volver a ver mi código después de tantos meses, es raro. En general lo entiendo bien, pero parece que algunas cosas son demasiado complicadas para lo que hacen.&lt;br /&gt;&lt;br /&gt;Ahora que estoy en paro, tengo más tiempo para cacharrear y he descubierto esta pequeña joyita: &lt;a href="http://irrlicht.sourceforge.net/"&gt;irrlicht&lt;/a&gt;. He conseguido mover un cubo por una pista hecha en blender como si fuera un coche.&lt;br /&gt;&lt;br /&gt;Creo que voy a volver con el proyecto e incluso iniciar otro para no terminar ninguno de los dos :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-2171439484329631095?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/2171439484329631095/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=2171439484329631095' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/2171439484329631095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/2171439484329631095'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2009/02/sensacion-extrana.html' title='Sensación extraña'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4686678437895368906</id><published>2008-11-19T00:34:00.000-08:00</published><updated>2008-11-19T00:38:32.776-08:00</updated><title type='text'>Eh! que me bloquean...</title><content type='html'>Tengo tan olvidada esta página, que google cree que soy "spam". Bueno, señores de google, no se preocupen. Respondí a la solicitud y al "captcha" de sonido (por que la imagen era imposible de descifrar).&lt;div&gt;Este proyecto esta en parada técnica. Ahora mismo estoy buscando trabajo y no puedo estar con esto. Pero volveré.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4686678437895368906?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4686678437895368906/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4686678437895368906' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4686678437895368906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4686678437895368906'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/11/eh-que-me-bloquean.html' title='Eh! que me bloquean...'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-733885820116848861</id><published>2008-05-18T04:28:00.000-07:00</published><updated>2008-05-18T04:32:35.684-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><category scheme='http://www.blogger.com/atom/ns#' term='alojamiento'/><title type='text'>Ping?</title><content type='html'>Parece que el proyecto esta parado, pero no olvidado.&lt;div&gt;De momento, publicaré lo que tengo hecho hasta ahora, ya que el servidor donde alojaba antes ya no está disponible. ¿Alguien me ofrece unos cuantos megabytes en línea? Con 250 me conformo :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-733885820116848861?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/733885820116848861/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=733885820116848861' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/733885820116848861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/733885820116848861'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/05/ping.html' title='Ping?'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4300881213321085748</id><published>2008-04-15T02:44:00.000-07:00</published><updated>2008-04-15T02:48:57.992-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><title type='text'>ping?</title><content type='html'>Estoy vivo, pero últimamente hay mucho &lt;strong&gt;trabajo&lt;/strong&gt;: una nueva &lt;strong&gt;PS3&lt;/strong&gt; al que instalar linux, creación de un media server (&lt;strong&gt;media tomb&lt;/strong&gt;)  para la PS3, un &lt;strong&gt;guerrero undead&lt;/strong&gt; de nivel 21 y subiendo, fiestas de cumpleaños con &lt;strong&gt;gente perdiendo el conocimiento&lt;/strong&gt;... En fin, muchas cosas sucediendo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4300881213321085748?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4300881213321085748/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4300881213321085748' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4300881213321085748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4300881213321085748'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/04/ping.html' title='ping?'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-8489448449464858034</id><published>2008-03-31T03:54:00.000-07:00</published><updated>2008-03-31T03:57:21.414-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='binario'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><category scheme='http://www.blogger.com/atom/ns#' term='planes'/><title type='text'>¿Textos al pinchar en sprites? Hecho.</title><content type='html'>Estoy pensando ahora en &lt;strong&gt;más tipos de eventos&lt;/strong&gt; y en disparar &lt;strong&gt;más de una acción por evento&lt;/strong&gt;. También estaría bien hacer un par de escenas de ejemplos y &lt;strong&gt;publicar&lt;/strong&gt; unos binarios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-8489448449464858034?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/8489448449464858034/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=8489448449464858034' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8489448449464858034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8489448449464858034'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/03/textos-al-pinchar-en-sprites-hecho.html' title='¿Textos al pinchar en sprites? Hecho.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-6949935504727544283</id><published>2008-03-25T04:34:00.000-07:00</published><updated>2008-03-25T07:27:18.580-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><category scheme='http://www.blogger.com/atom/ns#' term='planes'/><title type='text'>Temas pendientes</title><content type='html'>Que no se me olvide que tengo &lt;strong&gt;pendiente&lt;/strong&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Crear método &lt;em&gt;"void claseTexto::SetParrafoVisible(unsigned short int parrafo)".&lt;/em&gt; Cambia el estado del parrafo indicado a visible.&lt;/li&gt;&lt;li&gt;Crear método &lt;em&gt;"void claseTexto::print()"&lt;/em&gt;. Hacer tick() al parrafo visible. Si devuelve true, imprime el párrafo marcado como visible. si no, es que ya no es visible. Ajustar propiedades privadas para el nuevo estado.&lt;/li&gt;&lt;li&gt;Crear contador &lt;em&gt;"tick"&lt;/em&gt; y bool Visible en claseParrafoTexto.&lt;/li&gt;&lt;li&gt;Crear metodo &lt;em&gt;"bool claseParrafoTexto::tick()".&lt;/em&gt; tick++. Cuando tick supere un valor, cambiar visible a false y devolver false. Si no, devolver true.&lt;/li&gt;&lt;li&gt;Crear nueva accion-evento &lt;em&gt;"muestra texto"&lt;/em&gt; y llamadas correspondientes en claseJuego.&lt;/li&gt;&lt;li&gt;Hacer prueba de pinchar en sprite y mostrar texto.&lt;/li&gt;&lt;li&gt;Ir pensando en eventos para gestionar objetivos del juego.&lt;/li&gt;&lt;li&gt;Ir pensando en condicionar la construcción de escenas dependiendo de los objetivos conseguidos.&lt;/li&gt;&lt;li&gt;Ir pensando en nuevos tipos de escena: diálogo, lucha...&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-6949935504727544283?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/6949935504727544283/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=6949935504727544283' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6949935504727544283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6949935504727544283'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/03/temas-pendientes.html' title='Temas pendientes'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-5147514598724347912</id><published>2008-03-19T02:58:00.000-07:00</published><updated>2008-03-19T03:05:27.422-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>Limpieza y textos</title><content type='html'>Voy lento pero seguro. Ya hemos hecho &lt;strong&gt;limpieza en las librerías&lt;/strong&gt; y arrays del juego. El código en esa parte ha quedado mucho más limpio y comprensible.&lt;br /&gt;Ahora hay que seguir con las clases para los textos. Es más complicado de lo que parece, ya que hay &lt;strong&gt;un montón de propiedades&lt;/strong&gt; a tener en cuenta para presentar los textos adecuadamente. Y la cosa se complica mucho más si quiero hacer animaciones chulas con el texto. Más sobre este tema pronto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-5147514598724347912?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/5147514598724347912/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=5147514598724347912' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5147514598724347912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5147514598724347912'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/03/limpieza-y-textos.html' title='Limpieza y textos'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-7961833710643191662</id><published>2008-03-12T12:39:00.000-07:00</published><updated>2008-03-12T12:43:30.570-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Array como argumento de función.</title><content type='html'>Un &lt;span style="font-weight: bold;"&gt;array &lt;/span&gt;pasado a una función como &lt;span style="font-weight: bold;"&gt;argumento&lt;/span&gt;, se convierte en &lt;span style="font-weight: bold;"&gt;puntero &lt;/span&gt;para la función.&lt;br /&gt;&lt;br /&gt;Lo explican muy bien aqui: &lt;a href="http://www.eskimo.com/%7Escs/cclass/notes/sx10f.html"&gt;http://www.eskimo.com/~scs/cclass/notes/sx10f.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Qué cosas tiene el C... hay que quererlo tal y como es :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-7961833710643191662?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/7961833710643191662/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=7961833710643191662' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7961833710643191662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7961833710643191662'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/03/array-como-argumento-de-funcin.html' title='Array como argumento de función.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-1818635692051205631</id><published>2008-03-10T12:22:00.000-07:00</published><updated>2008-03-10T12:37:03.727-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>¿Arrays de enteros o array de struct?</title><content type='html'>Me he dado cuenta de que &lt;span style="font-weight: bold;"&gt;la forma de almacenar los datos del juego&lt;/span&gt;, como los eventos por escena, los nombres de los ficheros y demás, que estoy utilizando es, sinceramente, una &lt;span style="font-weight: bold;"&gt;chapuza&lt;/span&gt;.&lt;br /&gt;Casi todos los datos son listas de enteros y enums. Los meto en arrays de esta forma:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;int datosTextos[]= {&lt;br /&gt;    12,     0,          0,      NORMAL_PEQ, 128,    128,    128,    50, 50,&lt;br /&gt;    12,     0,          1,      NORMAL_PEQ, 128,    128,    128,    50, 50,&lt;br /&gt;    12,     1,          2,      ABERRED_GRA,255,    0,      0,      200,300&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Luego, en los constructores de los objetos, por ejemplo claseEscena, utilizo funciones que me sacan los datos y construyo las propiedades privadas que necesito en ese momento.&lt;br /&gt;El problema que tiene esta forma de trabajar es que sólo puedo meter enteros en los arrays. Los literales de texto van a parte en funciones específicas. He ahí la chapuza.&lt;br /&gt;Estoy pensando en utilizar &lt;span style="font-style: italic;"&gt;structs&lt;/span&gt;. Así, podría meter un literal char * junto con los int para cada elemento del array. Podría mantener las llamadas a las funciones y la librería de datos quedaría mucho más clara.&lt;br /&gt;Ya veremos qué hago. Lo dejamos en la lista de "&lt;span style="font-style: italic;"&gt;estaría bien si...&lt;/span&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-1818635692051205631?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/1818635692051205631/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=1818635692051205631' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1818635692051205631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1818635692051205631'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/03/arrays-de-enteros-o-array-de-struct.html' title='¿Arrays de enteros o array de struct?'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-467578310367501030</id><published>2008-02-25T01:03:00.000-08:00</published><updated>2008-02-25T01:12:37.669-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>Textos Multilínea</title><content type='html'>Me he encontrado con un pequeño problema.  La librería &lt;strong&gt;SDL_ttf&lt;/strong&gt;, que voy a utilizar para generar los textos, sólo es capaz de crear &lt;strong&gt;superficies SDL con textos en una sola línea&lt;/strong&gt;. Un sprite, una línea. Podría utilizar la generación de "&lt;em&gt;glifos&lt;/em&gt;", pero sinceramente, no me apetece. Así que me toca añadir una capa más de abstracción a la clase que se encarga de los textos, creando &lt;strong&gt;otra clase&lt;/strong&gt; capaz de albergar más de un sprite cada línea del texto.&lt;br /&gt;Es un poco pesado de programar, pero qué le vamos a hacer. La clase será "&lt;em&gt;claseParrafoTexto&lt;/em&gt;".&lt;br /&gt;También estoy pensando en añadir soporte para varios tipos de letra, tamaño, color, fondo... Si lo hago bien, utilizaré estas mismas clases para la generación de los menús. Si es que algún día los hago :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-467578310367501030?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/467578310367501030/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=467578310367501030' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/467578310367501030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/467578310367501030'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/02/textos-multilnea.html' title='Textos Multilínea'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-1177769868680778306</id><published>2008-02-22T10:10:00.000-08:00</published><updated>2008-02-22T10:19:36.254-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><title type='text'>Niños, recordad siempre que...</title><content type='html'>Hay que &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;inicializar todas las propiedades privadas de una clase&lt;/span&gt; en C++. &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Siempre. Siempre. Siempre&lt;/span&gt;. Siempre.&lt;div&gt;Siempre.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Siempre.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por que si no, recolectas basura de la memoria. Y empiezas a llamar a métodos y funciones con basura en sus argumentos. Y de repente tu programa casca. Sin errores aparentes. De forma aparentemente aleatoria. Y encontrar lo que falla se vuelve un infierno.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y eso no puede ser. Por que la salud mental sufre. Y nosotros queremos mantener la salud mental. ¿Verdad? Sí... Sí...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-1177769868680778306?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/1177769868680778306/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=1177769868680778306' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1177769868680778306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1177769868680778306'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/02/nios-recordad-siempre-que.html' title='Niños, recordad siempre que...'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-3075758618164224437</id><published>2008-02-17T08:22:00.001-08:00</published><updated>2008-02-17T08:44:49.311-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><title type='text'>Representación de textos en escena interactiva</title><content type='html'>Una parte importante de juego son los &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;textos&lt;/span&gt;. Por eso, voy a crear una clase sólo para gestionarlos. La clase se llamará claseTextos. Los textos en realidad serán sprites generados al principio de la escena. Los &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;constructores&lt;/span&gt; de la escena llamarán a los métodos de la nueva clase para generar todos los textos. Cada texto será un sprite de una lista como propiedad privada de la clase.&lt;div&gt;En la ejecución de la escena interactiva se mostrará sólo un texto a la vez. Aprovecharé esto para que la clase haga aparecer y desaparecer los textos de forma suave.&lt;/div&gt;&lt;div&gt;Para las escenas en las que se hable con un personaje del juego, crearé otro tipo de escena, ya que la representación de los textos será distinta.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-3075758618164224437?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/3075758618164224437/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=3075758618164224437' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/3075758618164224437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/3075758618164224437'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/02/blog-post.html' title='Representación de textos en escena interactiva'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-5223229949162306474</id><published>2008-01-28T02:03:00.000-08:00</published><updated>2008-01-28T02:07:41.463-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><title type='text'>ping?</title><content type='html'>Es cierto, he dejado descuidado el blog y por lo tanto, el desarrollo. Pero tengo buenas escusas. Mudanza, falta de conexión, estudio para certificarme como administrador de sistemas...&lt;br /&gt;&lt;br /&gt;Pero hay planes de desarrollo muy interesantes. Si hay suerte, voy a ayudar a un amigo a realizar su proyecto de fin de carrera. Más noticias pronto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-5223229949162306474?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/5223229949162306474/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=5223229949162306474' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5223229949162306474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5223229949162306474'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2008/01/ping.html' title='ping?'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-871387045256225698</id><published>2007-11-19T01:42:00.000-08:00</published><updated>2007-11-19T01:50:57.725-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interfaz'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>Progreso lento, planes interesantes.</title><content type='html'>La vida es lo que te interrumpe mientras codeas.&lt;br /&gt;Ya se ha superado el tema de &lt;strong&gt;pinchar en los sprites&lt;/strong&gt;.&lt;br /&gt;Ahora tengo que implementar las llamadas a los eventos-acciones. No creo que me cueste mucho. Seguramente haré un par de escenas de ejemplo.&lt;br /&gt;Ahora estoy pensando en construir el &lt;strong&gt;sistema de interfaz&lt;/strong&gt;, que serán dos bandas negras para convertir el juego en una especie de película "&lt;em&gt;cinemascope&lt;/em&gt;". En estas bandas aparecerá la puntuación, los mensajes y las descripciones, los diálogos, etc.&lt;br /&gt;Para las &lt;strong&gt;escenas de lucha&lt;/strong&gt; tengo grandes planes y una colaboración. El engine contará con una característica muy interesante.&lt;br /&gt;&lt;br /&gt;Más noticias pronto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-871387045256225698?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/871387045256225698/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=871387045256225698' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/871387045256225698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/871387045256225698'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/11/progreso-lento-planes-interesantes.html' title='Progreso lento, planes interesantes.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-3952028683730850735</id><published>2007-11-07T00:33:00.001-08:00</published><updated>2007-11-07T00:33:23.598-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><title type='text'>ping?</title><content type='html'>pong!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-3952028683730850735?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/3952028683730850735/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=3952028683730850735' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/3952028683730850735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/3952028683730850735'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/11/ping.html' title='ping?'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4746092108287516849</id><published>2007-10-22T03:11:00.000-07:00</published><updated>2007-10-22T03:21:28.301-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>Píxeles de SDL_Surface y eventos de sprite.</title><content type='html'>Al final era más &lt;strong&gt;fácil&lt;/strong&gt; de lo que yo creía. Hay un ejemplo en la documentación de libSDL que explicaba perfectamente cómo hacerlo. Copiaré el código con muy pocos cambios. Así, la detección de sprites pinchados se queda de la siguiente manera:&lt;br /&gt;&lt;br /&gt;1.- Crear &lt;strong&gt;propiedad privada del sprite&lt;/strong&gt; que sea un &lt;strong&gt;SDL_Surface&lt;/strong&gt; con tamaño igual al de la superficie de la pantalla y 8 bits de profundidad con flag SWSURFACE. Esta superficie será la máscara.&lt;br /&gt;2.- Cuando se &lt;strong&gt;cree un frame&lt;/strong&gt; del sprite, crear una &lt;strong&gt;copia&lt;/strong&gt; del frame a 8 bits como "&lt;em&gt;sombra&lt;/em&gt;", también con flag SWSURFACE&lt;br /&gt;3.- cuando se pida un &lt;strong&gt;tick&lt;/strong&gt; del sprite (actualización de animación y frame para hacer blitting a la pantalla), rellenar la superficie máscara de un color concreto (¿rosa? ¿verde fosforito? ¿azul puro?)  y &lt;strong&gt;hacer blit de la sombra&lt;/strong&gt; del frame actual sobre la superficie máscara.&lt;br /&gt;4.- para saber si el &lt;strong&gt;ratón ha pinchado&lt;/strong&gt; sobre nuestro sprite, sacamos el &lt;strong&gt;color &lt;/strong&gt;del pixel donde está el ratón de la máscara. Si &lt;strong&gt;no&lt;/strong&gt; es el &lt;strong&gt;color de fondo asignado&lt;/strong&gt;, hemos pinchado en nuestro sprite y disparamos &lt;strong&gt;evento de usuario de SDL&lt;/strong&gt;, que a su vez disparará una o varias acciones de la lista de acciones de la escena.&lt;br /&gt;&lt;br /&gt;A ver si esta tarde o mañana lo programo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4746092108287516849?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4746092108287516849/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4746092108287516849' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4746092108287516849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4746092108287516849'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/10/pxeles-de-sdlsurface-y-eventos-de.html' title='Píxeles de SDL_Surface y eventos de sprite.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-9085854616820734942</id><published>2007-10-19T05:32:00.000-07:00</published><updated>2007-10-20T09:52:44.300-07:00</updated><title type='text'>No he avanzado mucho...</title><content type='html'>&lt;div&gt;... desde el último post. Pero tengo una buena excusa; he estado con &lt;span style="font-weight: bold;"&gt;Ubuntu 7.10&lt;/span&gt; probando, reprobando y poniendo más a prueba. Y sólo tiene dos problemas para mí:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;El controlador de intel para las &lt;span style="font-weight: bold;"&gt;Xorg&lt;/span&gt;  detecta el &lt;span style="font-weight: bold;"&gt;DPI&lt;/span&gt; demasiado grande que no concuerda con los ajustes de &lt;span style="font-weight: bold;"&gt;Gnome.&lt;/span&gt; Así, las barras de ventana, a cargo de compiz, salen con &lt;span style="font-weight: bold;"&gt;letras muy grandes&lt;/span&gt; respecto del resto del apartado gráfico, a cargo de Gnome. Es molesto, pero no es importante. &lt;span style="font-weight: bold;"&gt;Se arregla&lt;/span&gt; añadiendo la opción &lt;span style="font-style: italic;"&gt;"-dpi 96"&lt;/span&gt; en el menú &lt;span style="font-style: italic;"&gt;Sistema ==&gt; Administración ==&gt; Ventana de entrada ==&gt; Seguridad ==&gt; Configurar Servidor X ==&gt; Comando&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Se agota la &lt;span style="font-weight: bold;"&gt;batería&lt;/span&gt; de mi portátil en &lt;span style="font-weight: bold;"&gt;tres horas escasas&lt;/span&gt;. Claro, que no tengo un portátil muy bueno, pero creo que es poco tiempo. Deben &lt;span style="font-weight: bold;"&gt;mejorar&lt;/span&gt; bastante en el &lt;span style="font-weight: bold;"&gt;consumo&lt;/span&gt; de energía.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;El resto del sistema simplemente funciona como debe.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-9085854616820734942?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/9085854616820734942/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=9085854616820734942' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/9085854616820734942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/9085854616820734942'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/10/no-he-avanzado-mucho.html' title='No he avanzado mucho...'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-8202053326203825598</id><published>2007-10-14T03:44:00.000-07:00</published><updated>2007-10-14T04:05:16.730-07:00</updated><title type='text'>Máscaras de sprites</title><content type='html'>Me están costando más de lo que suponía.&lt;br /&gt;Leer un pixel de una superficie SDL tiene su miga, ya que la información de los pixeles sólo es accesible &lt;span style="font-weight: bold;"&gt;directamente desde la memoria&lt;/span&gt;. Y además, si la superficie es de tipo &lt;span style="font-style: italic;"&gt;"HWSURFACE",&lt;/span&gt; está en la &lt;span style="font-weight: bold;"&gt;memoria de la tarjeta gráfica&lt;/span&gt;, lo que hace las lecturas &lt;span style="font-weight: bold;"&gt;lentas.&lt;/span&gt; Y no podría leer pixeles fuera de rango sin hacer costosas &lt;span style="font-weight: bold;"&gt;comprobaciones&lt;/span&gt; antes.&lt;br /&gt;Ahora mismo estoy creando un sistema de &lt;span style="font-style: italic;"&gt;"sombra"&lt;/span&gt; de los sprites, en la que creo una superficie &lt;span style="font-style: italic;"&gt;"SWSURFACE"&lt;/span&gt; de acceso rápido equivalente a la superficie  de la pantalla, pero en la que sólo &lt;span style="font-style: italic;"&gt;"bliteo"&lt;/span&gt; una copia del sprite que también es &lt;span style="font-style: italic;"&gt;"SWSURFACE".&lt;/span&gt; Todo esto con sólo &lt;span style="font-weight: bold;"&gt;8 bits de profundidad&lt;/span&gt; para hacer el bliteo lo más rapido posible.&lt;br /&gt;Cuando quiera &lt;span style="font-weight: bold;"&gt;leer&lt;/span&gt; el pixel donde se encuentra el ratón, tengo que &lt;span style="font-weight: bold;"&gt;bloquear la superficie&lt;/span&gt; &lt;span style="font-style: italic;"&gt;"sombra",&lt;/span&gt; haciendo una lectura de este estilo:&lt;br /&gt;&lt;br /&gt;          &lt;pre&gt;&lt;br /&gt;Uint8 *bufp;//Avanzamos en bloques de 8 bits en vez de 1 byte&lt;br /&gt;SDL_LockSurface(superficie);&lt;br /&gt;            bufp = (Uint8 *)superficie-&gt;pixels + y*superficie-&gt;pitch/2 + x;&lt;br /&gt;// realizamos comparación de bufp con un valor generado por la función&lt;br /&gt;// SDL_MapRGB para saber si hemos tocado nuestro sprite&lt;br /&gt;SDL_UnlockSurface(superficie);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Siendo &lt;span style="font-style: italic;"&gt;"superficie"&lt;/span&gt; un &lt;span style="font-weight: bold;"&gt;SDL_Surface.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Más noticias pronto :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-8202053326203825598?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/8202053326203825598/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=8202053326203825598' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8202053326203825598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8202053326203825598'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/10/mscaras-de-sprites.html' title='Máscaras de sprites'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-7300593080276978409</id><published>2007-10-06T11:51:00.000-07:00</published><updated>2007-10-06T11:58:00.522-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gráficos'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'>Punteros de ratón.</title><content type='html'>El ratón tiene &lt;span style="font-weight: bold;"&gt;punteros&lt;/span&gt; que indican la &lt;span style="font-weight: bold;"&gt;acción&lt;/span&gt; activa en ese momento.&lt;br /&gt;Para &lt;span style="font-style: italic;"&gt;"usar",&lt;/span&gt; un par de &lt;span style="font-weight: bold;"&gt;engranajes.&lt;/span&gt; Para &lt;span style="font-style: italic;"&gt;"ver",&lt;/span&gt; una &lt;span style="font-weight: bold;"&gt;lupa.&lt;/span&gt; Para &lt;span style="font-style: italic;"&gt;"coger",&lt;/span&gt; una &lt;span style="font-weight: bold;"&gt;mano.&lt;/span&gt; Para &lt;span style="font-style: italic;"&gt;"disparar",&lt;/span&gt; una &lt;span style="font-weight: bold;"&gt;mirilla.&lt;/span&gt; Y por supuesto, un &lt;span style="font-weight: bold;"&gt;puntero&lt;/span&gt; normal.&lt;br /&gt;&lt;br /&gt;Lo siguiente serán eventos disparados por los sprites. Pero antes debo decidir cómo gestiono las máscaras de los sprites... Esto me va a costar un poco más, pero una vez resuelto este tema, ya se podrán crear juegos simples.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-7300593080276978409?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/7300593080276978409/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=7300593080276978409' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7300593080276978409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7300593080276978409'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/10/punteros-de-ratn.html' title='Punteros de ratón.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-8999210786552636674</id><published>2007-09-29T14:43:00.000-07:00</published><updated>2007-09-29T14:49:19.304-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'>Música en las escenas y futuro</title><content type='html'>He programado un pequeño gestor de sonido y ahora las escenas tienen música de fondo. Pronto código y binario.&lt;br /&gt;Lo siguiente va a ser los modos de interacción (ver, usar, coger) con el ratón, eventos generados por los sprites, presentación de texto, efectos de sonido...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-8999210786552636674?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/8999210786552636674/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=8999210786552636674' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8999210786552636674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8999210786552636674'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/09/msica-en-las-escenas-y-futuro.html' title='Música en las escenas y futuro'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4718556493972650263</id><published>2007-09-19T14:38:00.001-07:00</published><updated>2007-09-19T14:38:05.329-07:00</updated><title type='text'>Temas pendientes</title><content type='html'>Ahora que ya tengo una base funcionando, tengo pendientes un montón de cosas:&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Sonido&lt;/span&gt; en las escenas. Listas de sonidos, eventos de reproducción.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Máscaras&lt;/span&gt; en los sprites. ¿Autogeneradas?&lt;br /&gt;- Los sprites deben generar &lt;span style="font-weight: bold;"&gt;eventos&lt;/span&gt; al ser pinchados con el ratón.&lt;br /&gt;- Las escenas interactivas deben comprobar la lista de objetivos cumplidos y &lt;span style="font-weight: bold;"&gt;generar las acciones&lt;/span&gt; oportunas. Esto sirve para que los objetos cambiados en el juego tengan persistencia.&lt;br /&gt;- Hay que ir pensando en una forma de representar &lt;span style="font-weight: bold;"&gt;texto&lt;/span&gt; en la pantalla dinámicamente para diálogos y descripciones.&lt;br /&gt;- Un sistema de &lt;span style="font-weight: bold;"&gt;inventario&lt;/span&gt; también estaría bien.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4718556493972650263?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4718556493972650263/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4718556493972650263' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4718556493972650263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4718556493972650263'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/09/temas-pendientes.html' title='Temas pendientes'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-7802293956369901593</id><published>2007-09-18T16:33:00.000-07:00</published><updated>2007-09-18T17:18:30.369-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='binario'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>Primer ejecutable</title><content type='html'>Ya he conseguido implementar las &lt;span style="font-weight: bold;"&gt;listas de sprites&lt;/span&gt; y su presentación en la pantalla. La librería &lt;span style="font-weight: bold;"&gt;SDL&lt;/span&gt; funciona muy bien. Incluso puedo dar unas especificaciones mínimas para el engine: Procesador pentium a 800 MHz, Windows 2000, una tarjeta gráfica que soporte directX 7 y 256 Mb de ram.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Aberrant Engine&lt;/span&gt;. &lt;a href="http://www.arrakis.es/%7Ecesrodmo/theaberrant_20070917.zip"&gt;Código fuente.&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo&lt;/span&gt; de Aberrant Engine. &lt;a href="http://www.arrakis.es/%7Ecesrodmo/theaberrantwin32.zip"&gt;Binario Win32.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Intrucciones para el Binario de ejemplo: &lt;span style="font-weight: bold;"&gt;descomprimir&lt;/span&gt; y &lt;span style="font-weight: bold;"&gt;ejecutar&lt;/span&gt; "&lt;span style="font-style: italic;"&gt;theaberrant.exe&lt;/span&gt;" de la carpeta "&lt;span style="font-style: italic;"&gt;theaberrant&lt;/span&gt;". Para &lt;span style="font-weight: bold;"&gt;salir&lt;/span&gt; del programa, pulsar la tecla &lt;span style="font-weight: bold;"&gt;F10&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ahora queda implementar eventos disparados desde los sprites y ya se podrá hacer un juego tipo "&lt;a href="http://www.minijuegos.com/juegos/jugar.php?id=2427"&gt;Exmortis&lt;/a&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-7802293956369901593?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/7802293956369901593/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=7802293956369901593' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7802293956369901593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7802293956369901593'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/09/primer-ejecutable.html' title='Primer ejecutable'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-1072009882897861361</id><published>2007-09-08T07:52:00.000-07:00</published><updated>2007-09-08T08:05:05.676-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='vacaciones'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>Creación de Sprites comprobada</title><content type='html'>Ahora tengo que idear un sistema para asignar a cada sprite una función de posición que dependa del tiempo y que sea individual para cada Sprite.&lt;br /&gt;Será una función de la librería de datos a la que se le pasará toda la información importante por referencia.&lt;br /&gt;Por cierto, seguramente me llevaré el ordenador portátil a mis vacaciones, bajo el benepácito de mi novia, por lo que el desarrollo no se detendrá. Creo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-1072009882897861361?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/1072009882897861361/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=1072009882897861361' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1072009882897861361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/1072009882897861361'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/09/creacin-de-sprites-comprobada.html' title='Creación de Sprites comprobada'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4786339424815619904</id><published>2007-09-07T04:40:00.000-07:00</published><updated>2007-09-07T04:49:28.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='vacaciones'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>Se acercan las vacaciones...</title><content type='html'>Ya tengo &lt;strong&gt;escrito&lt;/strong&gt; todo el sistema de &lt;strong&gt;métodos que cargarán los frames&lt;/strong&gt; de cada sprite de una escena en memoria. Leer estos frames será tan sencillo como devolver el puntero &lt;em&gt;SDL_Surface&lt;/em&gt; para hacer blitting directamente a la pantalla. Tengo que hacer unas cuantas &lt;strong&gt;pruebas&lt;/strong&gt; para ver si no me dejo ningún puntero por borrar.&lt;br /&gt;¿Sería posible reproducir una animación de "&lt;em&gt;Loading&lt;/em&gt;" mientras se carga? Tengo que investigarlo.&lt;br /&gt;Están las vacaciones a la vuelta de la esquina, por lo que el proyecto se quedará &lt;strong&gt;parado&lt;/strong&gt; &lt;strong&gt;entre una y dos semanas&lt;/strong&gt; a partir de este domingo. Publicaré lo que llevo hecho por si alguien quiere echarle un vistazo. Pero vista la increíble audiencia de este blog :P no creo que nadie me mande parches.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4786339424815619904?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4786339424815619904/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4786339424815619904' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4786339424815619904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4786339424815619904'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/09/se-acercan-las-vacaciones.html' title='Se acercan las vacaciones...'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-4358379767920799646</id><published>2007-09-06T01:00:00.000-07:00</published><updated>2007-09-06T01:10:15.019-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>Codeando voy, codeando vengo...</title><content type='html'>Escribo código &lt;span style="font-weight: bold;"&gt;allá donde puedo&lt;/span&gt;; en el trabajo medio a escondidas, en casa después de limpiar, cocinar y hacer compra. La implementación de los sprites avanza &lt;span style="font-weight: bold;"&gt;lentamente&lt;/span&gt;.&lt;br /&gt;Serán animados, pero no tendrán máscaras todavía. Estoy pensando en crear un sistema automático de creación de máscaras para ahorrar espacio en disco pero no creo que lo haga.&lt;br /&gt;Los sprites podrán ser &lt;span style="font-weight: bold;"&gt;animados.&lt;/span&gt; Cada objeto sprite tiene una lista de frames que irán rotando automáticamente.&lt;br /&gt;Todavía no tengo código enseñable. Pronto más.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-4358379767920799646?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/4358379767920799646/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=4358379767920799646' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4358379767920799646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/4358379767920799646'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/09/codeando-voy-codeando-vengo.html' title='Codeando voy, codeando vengo...'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-5638713071952032688</id><published>2007-08-31T12:28:00.000-07:00</published><updated>2007-08-31T12:31:56.577-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='implementación'/><title type='text'>¿Y dónde pongo los sprites?</title><content type='html'>He retrasado todo lo que he podido la implementación de la escena interactiva por que &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;quería&lt;/span&gt; estar completamente seguro del diseño.&lt;br /&gt;Tengo dos clases que manejan el comportamiento del programa. La clase juego, gestiona las llamadas a la &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;librería&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SDL&lt;/span&gt;, guarda los datos persistentes del juego y manda eventos a la clase escena. La clase escena se instancia para cada escena, y modifica los datos de la clase juego en respuesta a los eventos recibidos.&lt;br /&gt;Cada vez que se crea una escena nueva, hay que cargar los &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;sprites&lt;/span&gt;, sonidos, reglas, y todo lo relacionado con la escena. Pero, &lt;span style="font-weight: bold;"&gt;¿dónde se cargan?&lt;/span&gt;. Parece que lo lógico sería que todo lo de la escena fuera propiedad privada de la clase escena. Pero eso son d&lt;span style="font-weight: bold;"&gt;atos que va a utilizar &lt;/span&gt;&lt;span style="font-weight: bold;" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SDL&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;en realidad. Los &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;sprites&lt;/span&gt; serán &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;pngs&lt;/span&gt; que se "&lt;span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;blitearán&lt;/span&gt;" a la pantalla. Y los sonidos lo mismo. Así que he decidido que &lt;span style="font-weight: bold;"&gt;todo lo que tenga relación con &lt;/span&gt;&lt;span style="font-weight: bold;" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SDL&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; estará en la clase juego&lt;/span&gt;. Crearé los &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;arrays&lt;/span&gt; de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;sprites&lt;/span&gt; y sonidos como propiedad privada de la clase juego. Como los punteros de cada instancia son conocidos, haré que en el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;constructor&lt;/span&gt; de la escena se &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;carguen&lt;/span&gt; los &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;sprites&lt;/span&gt; en la clase juego.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-5638713071952032688?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/5638713071952032688/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=5638713071952032688' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5638713071952032688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5638713071952032688'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/08/y-dnde-pongo-los-sprites.html' title='¿Y dónde pongo los sprites?'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-9022817687914367878</id><published>2007-08-31T01:00:00.000-07:00</published><updated>2007-08-31T01:04:23.530-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='codigo'/><title type='text'>Código fuente</title><content type='html'>Vamos a publicar lo que llevamos hecho:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.arrakis.es/%7Ecesrodmo/theaberrant_20070831.zip"&gt;http://www.arrakis.es/~cesrodmo/theaberrant_20070831.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si alguien lo pide, publicaré un binario con un par de escenas de ejemplo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-9022817687914367878?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/9022817687914367878/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=9022817687914367878' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/9022817687914367878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/9022817687914367878'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/08/cdigo-fuente.html' title='Código fuente'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-5661208614063469753</id><published>2007-08-21T02:09:00.000-07:00</published><updated>2007-08-21T02:10:38.741-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><title type='text'>ping?</title><content type='html'>pong!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-5661208614063469753?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/5661208614063469753/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=5661208614063469753' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5661208614063469753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/5661208614063469753'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/08/ping.html' title='ping?'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-6964061425982834137</id><published>2007-08-15T05:35:00.000-07:00</published><updated>2007-08-15T05:37:11.032-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='worklogger'/><title type='text'>Nueva versión de Work Logger</title><content type='html'>Ya se graba la hora correctamente en los &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;log&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-6964061425982834137?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/6964061425982834137/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=6964061425982834137' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6964061425982834137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6964061425982834137'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/08/nueva-versin-de-work-logger.html' title='Nueva versión de Work Logger'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-9098866892525784716</id><published>2007-08-14T03:06:00.000-07:00</published><updated>2007-08-14T03:15:59.891-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='codigo'/><category scheme='http://www.blogger.com/atom/ns#' term='worklogger'/><title type='text'>Reproductor de vídeo terminado.</title><content type='html'>El &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;engine&lt;/span&gt; ya tiene una funcionalidad mínima como &lt;span style="font-weight: bold;"&gt;secuenciador de &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;vídeo&lt;/span&gt;&lt;/span&gt; :) Ahora soy capaz de ordenar escenas de &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;vídeo&lt;/span&gt;, definir la siguiente escena, salir del juego con una tecla determinada y responder al teclado. He implementado un &lt;span style="font-weight: bold;"&gt;sistema simple de eventos&lt;/span&gt; que servirá de base para las escenas interactivas.&lt;br /&gt;Empieza la parte realmente interesante; crear las l&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;istas&lt;/span&gt; de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;sprites&lt;/span&gt; y sonidos&lt;/span&gt;, reproducirlos en orden, crear los eventos adecuados y hacerlo todo orientado a un &lt;span style="font-weight: bold;"&gt;desarrollo del juego rápido y sencillo&lt;/span&gt; dentro de lo que cabe.&lt;br /&gt;&lt;br /&gt;En otro orden de cosas, me he dado cuenta que el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Work&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Logger&lt;/span&gt; pone los "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;timestamps&lt;/span&gt;" con dos horas de retraso. Luego lo arreglo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-9098866892525784716?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/9098866892525784716/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=9098866892525784716' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/9098866892525784716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/9098866892525784716'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/08/reproductor-de-vdeo-termminado.html' title='Reproductor de vídeo terminado.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-7095047162501910450</id><published>2007-08-10T18:07:00.000-07:00</published><updated>2007-08-14T03:13:47.395-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='codigo'/><category scheme='http://www.blogger.com/atom/ns#' term='worklogger'/><category scheme='http://www.blogger.com/atom/ns#' term='trabajo'/><category scheme='http://www.blogger.com/atom/ns#' term='binario'/><title type='text'>Work Logger</title><content type='html'>Esto no esta relacionado con el juego, pero creo que merece la pena ponerlo aquí. A lo mejor a alguien le resulta útil...&lt;br /&gt;He hecho una pequeña utilidad para windows que sirve para llevar un registro de lo que haces. Abres el programa, escribes lo que has hecho y lo cierras. Nada más. El programa te deja un registro en tu escritorio con la hora de la entrada y la entrada.&lt;br /&gt;Luego si alguien te pregunta, o tienes que decirle a otra persona lo que llevas hecho, sólo tienes que pasarle el log.&lt;br /&gt;&lt;br /&gt;Código fuente: &lt;a href="http://www.martaonline.com/worklogger.zip"&gt;worklogger.zip&lt;/a&gt;&lt;br /&gt;Binario: &lt;a href="http://www.martaonline.com/worklogger.exe"&gt;worklogger.exe&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-7095047162501910450?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/7095047162501910450/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=7095047162501910450' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7095047162501910450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7095047162501910450'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/08/work-logger.html' title='Work Logger'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-3440174038587246901</id><published>2007-08-02T10:04:00.001-07:00</published><updated>2007-08-02T10:22:12.187-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'>Eventos, condiciones y acciones</title><content type='html'>Este fin de semana voy a tratar de solucionar un problema que, cada vez que lo pienso, se vuelve más complicado dentro de mi cabeza.&lt;br /&gt;Necesito crear un sistema para cambiar las propiedades del objeto juego y el objeto escena, que se configure en cada escena, que reaccione a los clicks del ratón o a temporizadores ajustados y que dependa de cualquier propiedad del objeto juego o del objeto escena.&lt;br /&gt;Ya contaré más sobre el tema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-3440174038587246901?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/3440174038587246901/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=3440174038587246901' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/3440174038587246901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/3440174038587246901'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/08/eventos-condiciones-y-acciones.html' title='Eventos, condiciones y acciones'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-793767378941053384</id><published>2007-07-29T01:34:00.000-07:00</published><updated>2007-07-29T01:43:09.003-07:00</updated><title type='text'>Librería SMPEG</title><content type='html'>Me bajé un &lt;span style="font-weight: bold;"&gt;devpak&lt;/span&gt; con el DEV-C++ para la librería &lt;span style="font-weight: bold;"&gt;SMPEG.&lt;/span&gt; La librería, compilada como estática, proporciona funciones para cargar y reprodcir videos en formato mpeg1. Tiene un buen rendimiento pero esta abandonada.&lt;br /&gt;Este devpak reproduce correctamente los vídeos, pero no los paraba hasta el final. He tenido que bajarme el último &lt;span style="font-weight: bold;"&gt;cvs&lt;/span&gt;, importar el proyecto de visual C a DEV-C++ y recompilar la librería. El resultado es un archivo con extension ".a" que se sustituye por la que venía con el devpak.&lt;br /&gt;Ahora los vídeos se reproducen, se pausan y se paran sin ningún problema.&lt;br /&gt;&lt;br /&gt;La página del SMEPG es &lt;a href="http://icculus.org/smpeg/"&gt;http://icculus.org/smpeg/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-793767378941053384?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/793767378941053384/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=793767378941053384' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/793767378941053384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/793767378941053384'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/07/librera-smpeg.html' title='Librería SMPEG'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-705302194022300820</id><published>2007-07-28T04:13:00.000-07:00</published><updated>2007-07-28T04:21:14.814-07:00</updated><title type='text'>Vamos avanzando</title><content type='html'>El engine empieza a tomar forma, aunque todavía no hace nada interesante en realidad. El esqueleto con la relación juego&lt;--&gt;escena esta hecho. Se inicia el juego, el juego inicia la primera escena, que es un video y lo reproduce. Esto es todo de momento.&lt;br /&gt;Ahora tengo que añadir a la escena el sistema de eventos-acciones que modifica el juego y asi pasar a la siguiente escena de una forma programada.&lt;br /&gt;Lo siguiente será crear el sistema de escena interactiva. Será lo que me lleve más tiempo en realidad, ya que va a ser un sistema un poco complicado. Habrá listas de sprites animados, animaciones programadas mediante funciones, transparencias, eventos generados por el ratón y el teclado...&lt;br /&gt;Estaba pensando en hacer otro programa que gererase el código de la librería de datos. Algo así como un editor del engine para crear juegos. Eso lo dejaremos para lo último.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-705302194022300820?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/705302194022300820/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=705302194022300820' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/705302194022300820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/705302194022300820'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/07/vamos-avanzando.html' title='Vamos avanzando'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-6062043331612009499</id><published>2007-07-23T08:29:00.000-07:00</published><updated>2007-07-23T14:08:00.933-07:00</updated><title type='text'>Nueva versión de SDL</title><content type='html'>&lt;a href="http://www.libsdl.org/"&gt;SDL 1.2.12&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;y de SDL_mixer y de SDL_image y de SDL_gfx... toca rehacer las librerías y el sistema de compilado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-6062043331612009499?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/6062043331612009499/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=6062043331612009499' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6062043331612009499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6062043331612009499'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/07/nueva-verin-de-sdl.html' title='Nueva versión de SDL'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-7350785595687954769</id><published>2007-07-20T03:58:00.000-07:00</published><updated>2007-07-20T04:00:00.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><title type='text'>ping idaho^j idaho is alive</title><content type='html'>Mucho trabajo y mucho cansancio últimamente. El proyecto esta un poco parado. Pronto más. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-7350785595687954769?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/7350785595687954769/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=7350785595687954769' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7350785595687954769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7350785595687954769'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/07/ping-idahoj-idaho-is-alive.html' title='ping idaho^j idaho is alive'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-6475318331167513490</id><published>2007-07-08T04:54:00.001-07:00</published><updated>2007-07-08T05:31:17.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'>Referencias cruzadas entre dos clases</title><content type='html'>En mi diseño, los métodos de una clase tienen que poder llamar a los métodos de una segunda. Los métodos de la segunda clase tienen que poder llamar a los métodos de la primera.&lt;br /&gt;La solución para este problema que se me ha ocurrido es poner un puntero a la clase que queremos llamar como parte privada. Uno de los métodos públicos de la clase se encargará de darle el valor adecuado a ese puntero. Supongamos una cabecera “&lt;span style="font-style: italic;"&gt;clasejuego.h&lt;/span&gt;”:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#include "claseescena.h"&lt;br /&gt;&lt;br /&gt;class claseJuego&lt;br /&gt;{&lt;br /&gt;    private:&lt;br /&gt;    claseEscena * punteroEscena;&lt;br /&gt;[...]&lt;br /&gt;  public:&lt;br /&gt;      // class constructor&lt;br /&gt;      claseJuego();&lt;br /&gt;      // class destructor&lt;br /&gt;      ~claseJuego();&lt;br /&gt;&lt;br /&gt;      // Asigna la dirección del objeto Escena en el Juego&lt;br /&gt;      void asignaEscena(claseEscena * nuevoPunteroEscena);&lt;br /&gt;&lt;br /&gt;      // Con este método cambio propiedades del objeto Escena&lt;br /&gt;      void cambiaEscena(int a, int b);&lt;br /&gt;[...]&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;En “&lt;span style="font-style: italic;"&gt;claseescena.h&lt;/span&gt;” el código sería muy parecido.&lt;br /&gt;Nosotros crearíamos las instancias de los objetos e inmediatamente después llamaríamos a asignaEscena y a asignaJuego tal que así:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#include "clasejuego.h"&lt;br /&gt;#include "claseescena.h"&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[])&lt;br /&gt;{&lt;br /&gt;  claseJuego * punteroJuego;&lt;br /&gt;  claseEscena * punteroEscena;&lt;br /&gt;&lt;br /&gt;  punteroJuego = new claseJuego;&lt;br /&gt;  punteroEscena = new claseEscena;&lt;br /&gt;&lt;br /&gt;  punteroJuego-&gt;asignaEscena(punteroEscena);&lt;br /&gt;  punteroEscena-&gt;asignaJuego(punteroJuego);&lt;br /&gt;[...]&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Parece correcto, ¿verdad? Pues esto &lt;span style="font-weight: bold;"&gt;no compila&lt;/span&gt;. No se pueden hacer &lt;span style="font-style: italic;"&gt;includes&lt;/span&gt; cruzados por que no se pueden declarar dos tipos a la vez. Por muchos includes que se pongan en las cabeceras, el compilador recibe las declaraciones de una en una. Siempre se encotrará con que se hace referencia a un &lt;span style="font-weight: bold;"&gt;tipo todavía no declarado&lt;/span&gt;. Así que investigando sobre este problema he encontrado que se pueden hacer declaraciones de tipos por adelantado. Así en “&lt;span style="font-style: italic;"&gt;clasejuego.h&lt;/span&gt;”:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#include "claseescena.h"&lt;br /&gt;&lt;br /&gt;class claseEscena; // referencia por adelantado de un tipo&lt;br /&gt;class claseJuego&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    private:&lt;br /&gt;          claseEscena * punteroEscena;&lt;br /&gt;[...]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Igual en la otra cabecera.&lt;br /&gt;Hay otra soluciones para este problema, pero esta me parece la más fácil. Ahora, a otra cosa :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-6475318331167513490?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/6475318331167513490/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=6475318331167513490' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6475318331167513490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6475318331167513490'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/07/referencias-cruzadas-entre-dos-clases.html' title='Referencias cruzadas entre dos clases'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-8747754435758024767</id><published>2007-07-08T04:22:00.000-07:00</published><updated>2007-07-08T04:34:05.699-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'>Estilo de código</title><content type='html'>Utilizaré estilo de &lt;span style="font-weight: bold;"&gt;notación de camello&lt;/span&gt; y todas las variables tendrán su &lt;span style="font-weight: bold;"&gt;tipo como prefijo&lt;/span&gt; excepto los de tipo obvio que necesite para contar o guardar cadenas de caracteres. Creo que este estilo se llama &lt;span style="font-weight: bold;"&gt;notación Húngara&lt;/span&gt;. Ejemplos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;claseJuego&lt;/span&gt;: Estructura de la clase para el juego.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;puntJuego&lt;/span&gt;: Puntero de una instacia de claseJuego&lt;br /&gt;&lt;span style="font-style: italic;"&gt;i&lt;/span&gt;: variable entero que utilizo para un bucle o algo así&lt;br /&gt;&lt;span style="font-style: italic;"&gt;boolCheckSprite&lt;/span&gt;: booleando de una comprobación.&lt;br /&gt;&lt;br /&gt;Las &lt;span style="font-weight: bold;"&gt;constantes&lt;/span&gt; irán en &lt;span style="font-weight: bold;"&gt;mayúsculas&lt;/span&gt;. Los bloques de código dentro de bucles y funciones añadirán &lt;span style="font-weight: bold;"&gt;cuatro espacios&lt;/span&gt; o un &lt;span style="font-weight: bold;"&gt;tabulador&lt;/span&gt; antes de cada línea. Los comentarios podrán ir detrás de cada línea con doble barra o en bloques de barra asterisco.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-8747754435758024767?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/8747754435758024767/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=8747754435758024767' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8747754435758024767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8747754435758024767'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/07/estilo-de-cdigo.html' title='Estilo de código'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-8129756459314186328</id><published>2007-07-06T00:09:00.000-07:00</published><updated>2007-07-08T04:34:27.396-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='licencia'/><title type='text'>Cambiar de opinión (licencias, la venganza)</title><content type='html'>Dicen que es de sabios.&lt;br /&gt;He hablado con Fabi. Me ha convencido. Liberaré el Aberrant Engine bajo &lt;strong&gt;GPLv3&lt;/strong&gt; y el Juego bajo &lt;strong&gt;CC&lt;/strong&gt; sin permiso para modificar.&lt;br /&gt;No es una contradicción, ya que como autor, puedo considerar el juego como &lt;strong&gt;arte derivado&lt;/strong&gt;. Una obra separada. Que yo diga que ese arte derivado tiene parte GPL no implica que deba liberarlo también.&lt;br /&gt;&lt;br /&gt;Hablando de otros temas, tengo el diseño casi terminado. Pronto más.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-8129756459314186328?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/8129756459314186328/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=8129756459314186328' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8129756459314186328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8129756459314186328'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/07/cambiar-de-opinin-licencias-la-venganza.html' title='Cambiar de opinión (licencias, la venganza)'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-7274613538695059713</id><published>2007-07-05T11:02:00.000-07:00</published><updated>2007-07-08T04:36:05.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nombre'/><title type='text'>La criatura se va a llamar:</title><content type='html'>Tras pensarmelo mucho, el engine del juego se va a llamar:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:180%;"&gt;Aberrant engine&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-7274613538695059713?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/7274613538695059713/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=7274613538695059713' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7274613538695059713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7274613538695059713'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/07/la-criatura-se-va-llamar.html' title='La criatura se va a llamar:'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-7789247221955273762</id><published>2007-07-01T04:37:00.001-07:00</published><updated>2007-07-08T04:38:54.392-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'>Listas en c++</title><content type='html'>Las clases que voy a utilizar en el programa van a hacer un &lt;span style="font-weight: bold;"&gt;uso intensivo de listas de datos&lt;/span&gt; que se recorrerán para realizar alguna función.&lt;br /&gt;Por ejemplo, la clase "escena" tendrá una lista de "sprites". "sprite" será a su vez otra clase que contendrá más listas.&lt;br /&gt;¿Cómo &lt;span style="font-weight: bold;"&gt;implemento una lista&lt;/span&gt;? La opción más &lt;span style="font-style: italic;"&gt;académica&lt;/span&gt; es crear un sistema de punteros con una clase que gestiona la creación de nodos, su inserción y su recorrido. Es un sistema eficiente en la gestión de memoria pero es un poco pesado de implementar. Además, no tengo claro la forma en que gestionaria los diferentes tipos de punteros. ¿Tengo que hacer una clase lista para cada tipo? ¿o hago una clase genérica y luego voy heredando y sobrecargando los metodos para cada una? Un coñazo.&lt;br /&gt;La opción vaga es hacer arrays de objetos de esta forma:&lt;br /&gt;&lt;pre&gt;    laClase *arrayClase;&lt;br /&gt;  &lt;br /&gt;   arrayClase = new laClase[TAMANIO_LISTA];&lt;br /&gt;&lt;br /&gt;[...]&lt;br /&gt;  &lt;br /&gt;   delete[] arrayClase;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Así, todas las clases se instancian por que "new" llama a todos los constructores de cada elemento del array. Al principio, estos objetos tendrán la menor cantidad de datos posible e iremos "llenando" de datos cada nodo de la lista según lo vayamos necesitando. El comando "delete[]" llama a todos los destructores de las clases, que a su vez se encargarán de "deletear" sus arrays-listas. Es un sistema &lt;span style="font-weight: bold;"&gt;poco eficiente en el uso de memoria&lt;/span&gt;, pero seguro y fácil de implementar.&lt;br /&gt;La memoria no me preocupa mucho. Todos los ordenadores modernos tienen bastante memoria.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-7789247221955273762?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/7789247221955273762/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=7789247221955273762' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7789247221955273762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7789247221955273762'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/07/listas-en-c.html' title='Listas en c++'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-6071300506440852123</id><published>2007-06-24T02:47:00.001-07:00</published><updated>2007-07-08T04:38:37.037-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><title type='text'>Sigo vivo...</title><content type='html'>Pronto más posts...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-6071300506440852123?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/6071300506440852123/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=6071300506440852123' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6071300506440852123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6071300506440852123'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/06/sigo-vivo.html' title='Sigo vivo...'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-318129025360523910</id><published>2007-06-16T03:10:00.001-07:00</published><updated>2007-07-08T04:38:20.376-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='licencia'/><title type='text'>Conclusión sobre las licencias.</title><content type='html'>Para el motor del juego y un pequeño módulo de ejemplo, utilizaré la &lt;span style="font-weight: bold;"&gt;&lt;a href="http://es.wikipedia.org/wiki/Licencia_BSD"&gt;licencia BSD&lt;/a&gt;&lt;/span&gt;, en la que permitiré la libre distribución del código y crear trabajos derivados tanto en forma de código como en binarios siempre y cuando se me nombre explícitamente en créditos y publicidad.&lt;br /&gt;Para el juego completo utilizaré "&lt;span style="font-weight: bold;"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-nd/2.5/es/"&gt;Licencia Reconocimiento-No comercial-Sin obras derivadas 2.5 España License de Creative Commons&lt;/a&gt;&lt;/span&gt;" en la que no permito el uso comercial del juego ni permito modificarlo. Me reservo el derecho de cambiar de opinión más adelante :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-318129025360523910?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/318129025360523910/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=318129025360523910' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/318129025360523910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/318129025360523910'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/06/conclusin-sobre-las-licencias.html' title='Conclusión sobre las licencias.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-8538321092058701031</id><published>2007-06-13T09:57:00.001-07:00</published><updated>2007-07-08T04:38:05.881-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='licencia'/><title type='text'>Más acerca de las licencias.</title><content type='html'>He seguido investigando sobre los tipos de licencias que podría aplicar al juego. En general, mis conclusiones son las siguientes:&lt;br /&gt;&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:Helvetica;font-size:9;"  &gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;La licencia GPLv2 y posteriores&lt;/span&gt; me obligan a publicar TODO el código fuente del juego. Eso incluiría las funciones que definen las escenas que van en librerías a parte. No me interesa esto, ya que no podría poner a descargar el juego sin que la parte creativa quedase expuesta.&lt;br /&gt;&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:Helvetica;font-size:9;"  &gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;La licencia LGPLv2 y posteriores&lt;/span&gt; permite que el código sea enlazado desde programas privativos si obligar a esos programas a que liberen a su vez su código. Esto esta pensado para publicar librerías de tal forma que todo el mundo pueda usarlas, incluyendo los productos privativos.&lt;br /&gt;&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:Helvetica;font-size:9;"  &gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;La licencia BSD&lt;/span&gt; original permite hacer cualquier cosa con el código siempre y cuando se nombre explícitamente al autor del programa o librería incluso en la publicidad que se haga del programa. Puede que esto me interese, ya que podría liberar sólo parte del programa bajo BSD y el resto sería cerrado. Otra versión de BSD posterior no tiene la clausula de publicidad.&lt;br /&gt;&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:Helvetica;font-size:9;"  &gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;La licencia X11.&lt;/span&gt; Quizás es la más sencilla de todas. Permite hacer lo que sea con el código mientras no se nombre en otro producto como característica. Como lo que busco es que mi nombre vaya con el juego, no creo que elija esta.&lt;br /&gt;&lt;br /&gt;De momento, creo que BSD es lo que más me gusta. Ahora quiero saber si existe un equivalente legal español a esta licencia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-8538321092058701031?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/8538321092058701031/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=8538321092058701031' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8538321092058701031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/8538321092058701031'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/06/he-seguido-investigando-sobre-los-tipos.html' title='Más acerca de las licencias.'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-7527756877364220389</id><published>2007-05-29T02:19:00.000-07:00</published><updated>2007-07-08T04:37:47.593-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='librerías'/><category scheme='http://www.blogger.com/atom/ns#' term='licencia'/><title type='text'>Librerias y licencias</title><content type='html'>Quiero diseñar el juego de tal forma que el intérprete de escenas y los descriptores de escenas se compilen independientemente. Así, la máquina principal del juego, que controlará el refresco de pantalla, el ratón, las transiciones y demás, serán el ejecutable principal en C++. Cuando se “instancie” un objeto que contenga toda la información de una escena, el constructor llamará a funciones C que devolverán los valores adecuados para esa escena. Estas funciones estarán en una DLL a parte. Así tendré separados el juego del “engine”.&lt;br /&gt;El uso de DLL es más lento (sólo un poquito más lento, vamos, inapreciable) que si integrase todo en un mismo ejecutable, pero así puedo lanzar el contenido artístico con una licencia restrictiva y el código del juego con otra más abierta.&lt;br /&gt;Ya he hecho mis primeras pruebas y es relativamente sencillo. Incluir código C en C++ se hace con la instrucción:&lt;br /&gt;&lt;br /&gt;extern “C” {&lt;br /&gt;#include “cabeceraC.h”&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Así, podremos llamar a las funciones en C desde C++.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-7527756877364220389?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/7527756877364220389/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=7527756877364220389' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7527756877364220389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/7527756877364220389'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/05/librerias-y-licencias.html' title='Librerias y licencias'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-6454532751358535038</id><published>2007-05-01T03:04:00.000-07:00</published><updated>2007-07-08T04:37:18.133-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='versiones'/><category scheme='http://www.blogger.com/atom/ns#' term='almacenamiento'/><title type='text'></title><content type='html'>Almacenamiento y otros problemas&lt;br /&gt;&lt;p&gt;Tengo un mac de 24 pulgadas, un pentium 4 HT, un portatil de 12 pulgadas con un core 2 duo y otro portatil viejo que hace las veces de servidor de ficheros.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Utilizaré este último como repositorio del código y del "toolkit". Será algo sencillo, un samba para almacenar ficheros comprimidos manulamente. Pondré la versión a mano en el nombre de fichero. Sé que lo ideal sería un cvs o algo así, pero no tengo tiempo para eso.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Además, no puedo postear con el widget blogger en este blog. ¿Alguien sabe de algún programa para mac os x para postear aquí?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-6454532751358535038?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/6454532751358535038/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=6454532751358535038' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6454532751358535038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6454532751358535038'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/05/almacenamiento-y-otros-problemas-tengo.html' title=''/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-563830571639882945</id><published>2007-04-30T04:15:00.000-07:00</published><updated>2007-07-08T04:36:40.762-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='librerías'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'></title><content type='html'>Preparación de librerías&lt;br /&gt;&lt;p&gt;El juego estará hecho sobre SDL, SDL_mixer, SDL_gfx, SDL_image y SMPEG. Hoy por fin he conseguido crear un entorno de programación. Voy a user DEV C++. He bajado las librerías precompiladas de todo lo que me hace falta. No he utilizado los devpaks por que no estan actualizados. Es una pena.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;El método que he seguido es el siguiente:&lt;/p&gt;&lt;p&gt;&lt;br /&gt; - Bajar el devpak si lo hubiera.&lt;/p&gt;&lt;p&gt;&lt;br /&gt; - Bajar la ultima version de la librería&lt;/p&gt;&lt;p&gt;&lt;br /&gt; - Sustituir los .h, los .a y los .dll&lt;/p&gt;&lt;p&gt;&lt;br /&gt;SDL_gfx tuve que compilarlo para crear los DLL. Con SMPEG no ha habido suerte y voy a utilizar un devpak que parece que funciona bien. Más adelante intentaré compilarlo yo mismo.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-563830571639882945?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/563830571639882945/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=563830571639882945' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/563830571639882945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/563830571639882945'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/04/preparacin-de-libreras-el-juego-estar.html' title=''/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4731341420311507015.post-6940813025174165463</id><published>2007-04-30T03:43:00.000-07:00</published><updated>2007-04-30T03:48:13.384-07:00</updated><title type='text'>¿Que es esto?</title><content type='html'>El diario de creación del proyecto "The Aberrant". Juego de terror-horror multiplataforma basado en las librerias SDL, hecho en C y C++.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4731341420311507015-6940813025174165463?l=theaberrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theaberrant.blogspot.com/feeds/6940813025174165463/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4731341420311507015&amp;postID=6940813025174165463' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6940813025174165463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4731341420311507015/posts/default/6940813025174165463'/><link rel='alternate' type='text/html' href='http://theaberrant.blogspot.com/2007/04/que-es-esto.html' title='¿Que es esto?'/><author><name>idaho</name><uri>http://www.blogger.com/profile/11877092279258869560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_k5sPNvPVybU/SDAUfyxVGYI/AAAAAAAAAAQ/_qRIsf3ycjI/S220/headphones96.gif'/></author><thr:total>0</thr:total></entry></feed>
