tag:blogger.com,1999:blog-31806383863450432272024-02-19T04:36:56.909-03:00blollingMe gusta programar, andar en bicicleta y comer helado de frambuesa.ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.comBlogger38125tag:blogger.com,1999:blog-3180638386345043227.post-86728697889317209172013-06-15T20:13:00.002-03:002014-04-09T11:01:38.192-03:00En bici al trabajo en MontevideoSe puede pedalear hasta el trabajo sin morir en el intento ni llegar totalmente sudado.<br />
<div>
<br /></div>
<div>
Lo primero a tener en cuenta, aunque parezca obvio, es prestar mucha atención cuando se está andando en el tráfico. No solo intentar entender qué maniobra va a hacer el auto que tenemos delante sino también ser capaces de escuchar cuando un auto se aproxima por detrás.<br />
Es importante ser predecible sobre la bici de manera de no sorprender a los vehículos que tengamos alrededor y evitar causar un posible accidente. Esto quiere decir, por ejemplo, no andar zigzagueando entre los autos o subiendo y bajando la vereda. También es útil señalizar con los brazos a la hora de doblar o incluso si se va a cambiar de carril.<br />
Para la noche son importantes los reflectivos y las luces. Estas últimas no solo para que nos vean sino también para ver bien por donde vamos y no terminar adentro de un pozo.<br />
<br />
La ruta que se va a hacer también es relevante. Es preferible hacer algunos kilómetros más por calles con menos tránsito a un viaje más corto pero menos seguro. Por ejemplo, nunca andaría por 18 de Julio si puedo ir por alguna calle paralela como Durazno o Canelones.<br />
Si se viaja por la rambla, una buena forma de perderle el miedo a andar por la calle es yendo por la vereda e intercalando pequeños tramos por la calle en zonas con poco tránsito o cuando hay tres o cuatro carriles.<br />
Cuando empecé a ir al trabajo en bici, hace más de un año, iba por la calle hasta la rambla y ahí andaba por la vereda. El tramo de Kibón lo hacia por la calle y luego volvía a la vereda hasta Malvín donde andaba por adentro por calles con poco movimiento. Con el tiempo fui extendiendo los tramos en la rambla por la calle hasta que nunca más volvi a la vereda.<br />
<br />
"Ni en pedo voy en bici, llegás todo sudado". Mentira.<br />
Al menos no con distancias cortas. Yo he hecho 13km hasta el trabajo y he llegado en perfectas condiciones. Aunque para lograrlo hay que tener en cuenta algunas cosas.<br />
Primero que nada, no hay necesidad de ir pedaleando a lo loco haciendo el máximo esfuerzo. Al fin y al cabo se está yendo a trabajar y no corriendo el Tour de France. Si estás en una bajada, dejate llevar.<br />
Si llevás una mochila en la espalda te puede dar calor, especialmente en verano. Es mejor usar un canasto o una parrilla para cargarla.<br />
<br />
Lo otro importante es la vestimenta. Recomiendo usar alguna camiseta deportiva de esas que le permiten a la piel respirar. Para el abrigo hay que tener en cuenta que la lana es mucho mejor que el algodón (internet está lleno de artículos que explican el por qué mejor que yo).</div>
<div>
<br />
Empezó el frío, ¿cuánto me abrigo?<br />
Una buena regla es "un poco menos de como saldría a caminar por la calle". Después de un par de minutos pedaleando ya se entra en calor y si nos abrigamos en exceso vamos a empezar a sufrir de calor y sudar. Y el sudor nos puede llegar a dar frío, en especial con prendas de algodón que se mojan y se enfrían, a diferencia de las de lana que mantienen el calor aun mojadas.<br />
<br />
Por lo general en invierno uso lo siguiente:<br />
<br />
-camiseta base de manga larga<br />
-buzo de lana<br />
-campera impermeable fina (hace la diferencia, especialmente si hay viento)<br />
-pantalón fino o short (el último se puede combinar con unas buenas medias largas abrigadas)<br />
<br />
En mi alforja siempre llevo una camiseta para cambiarme, además de un par de medias y algo de abrigo. Si llueve también llevo un calzoncillo por las dudas (aprendí que te podés mojar literalmente hasta el trasero si llueve lo suficiente).<br />
<br />
Por último, son fundamentales los guardabarros para los días de lluvia e incluso para después de la misma, cuando la calle aún está mojada.<br />
¡La lluvia no debería ser un impedimento para ir al trabajo en bici!<br />
<br /></div>
<div>
¡A pedalear!</div>
ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com4tag:blogger.com,1999:blog-3180638386345043227.post-43030973988612268932012-03-24T17:30:00.003-03:002012-03-24T17:31:51.234-03:00Lighthouse Keeper en githubSubi el proyecto del Lighthouse Keeper de VS 2008 a github. Con ustedes: <a href="https://github.com/bolino/Lighthouse-Keeper">https://github.com/bolino/Lighthouse-Keeper</a>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-91400124541196631812011-12-19T12:42:00.002-02:002011-12-19T12:45:42.797-02:00Timelapse de la creacion del Lighthouse Keeper<iframe width="560" height="315" src="http://www.youtube.com/embed/62bpOlwgTfU" frameborder="0" allowfullscreen></iframe><br /><br />Lo hice usando este programita: http://keeyai.com/projects-and-releases/chronolapse/ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-89089271493886997532011-12-19T01:32:00.004-02:002011-12-19T01:39:12.019-02:00Lighthouse Keeper<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSKglnFQ8hqWeja0Jab_z5tDbplHJtAgeouyCOyrX_PXWhWeurR7kB7rGZqM5TufiIEIB6TFOnqkMw2EZBgqXSSOIVpxFxF5OJh7qcnnN9OYgOiKELr7PSv3o_viW_9ut9OCc-kNbJRw/s1600/titlescreen.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSKglnFQ8hqWeja0Jab_z5tDbplHJtAgeouyCOyrX_PXWhWeurR7kB7rGZqM5TufiIEIB6TFOnqkMw2EZBgqXSSOIVpxFxF5OJh7qcnnN9OYgOiKELr7PSv3o_viW_9ut9OCc-kNbJRw/s400/titlescreen.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5687678652406629890" /></a><br />Este fin de semana participe en el <a href="http://www.ludumdare.com/compo/">Ludum Dare 22</a>.<div>Para los que no saben es una competencia donde el objetivo es hacer un juego en 48 horas, totalmente solo y siguiendo cierto tema.</div><div>El tema para este fin de semana fue "Alone", un tema medio de mierda, en mi humilde opinion.</div><div><br /></div><div>Decidi hacer un juego donde sos un farero y tenes que recolectar combustible (talando arboles) para que el faro pueda funcionar la noche. El objetivo es conseguir combustible suficiente (160 o mas) y no ser comido por los lobos que andan en la vuelta.</div><div><br /></div><div>El juego lo hice en C++ usando OpenGL y SDL.</div><div><br /></div><div>A esta altura el concurso llevaba mas de 700 juegos enviados.</div><div><br /></div><div>Link para descargar el juego (windows only, lo siento): <a href="http://dl.dropbox.com/u/12350369/ld/Lighthouse%20Keeper.rar">http://dl.dropbox.com/u/12350369/ld/Lighthouse%20Keeper.rar</a></div><div>Link para descargar el codigo: <a href="http://dl.dropbox.com/u/12350369/ld/Lighthouse%20Keeper%20src.rar">http://dl.dropbox.com/u/12350369/ld/Lighthouse%20Keeper%20src.rar</a></div><div>Link a la entrada en LD: <a href="http://www.ludumdare.com/compo/ludum-dare-22/?action=preview&uid=7596">http://www.ludumdare.com/compo/ludum-dare-22/?action=preview&uid=7596</a></div><div><br /></div><div>Copypaste del readme:</div><div><br /></div><div><div>Lighthouse Keeper by Juan Andres Nin </div><div>18/12/2011</div><div>ninbolin@gmail.com</div><div>http://blolling.blogspot.com</div><div><br /></div><div><br /></div><div><br /></div><div>This is a game developed for Ludum Dare 22.</div><div><br /></div><div>You are an old school lighthouse keeper who must gather fuel from trees, be it wood or oil, so the lighthouse can function and aid ships at night. Beware of the hungry wolves!</div><div>Pines gives you wood to burn at the lighthouse, which is harvested faster than oil but consumes faster. You can gather oil from olive trees, but it takes longer to do so than getting wood from a pine.</div><div><br /></div><div>Controls:</div><div>Arrow keys to move around. </div><div>A to harvest wood/oil from trees. </div><div>S to punch wolves in the face.</div></div>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-9140246525473052682011-12-11T21:03:00.002-02:002011-12-11T21:06:03.132-02:00Participare en el próximo Ludum Dare?Capaz!<div>Por lo pronto me registré en la página.</div><div><br /></div><div>Creo que gran parte del Sábado voy a estar ocupado con otras cosas, pero espero poder hacer algo.</div><div>Ojala el theme ayude.</div><div><br /></div><div><a href="http://www.ludumdare.com/compo/author/nin/">http://www.ludumdare.com/compo/author/nin/</a></div>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-86868467344453239162011-11-13T21:28:00.003-02:002011-11-13T21:35:09.184-02:00GLSL usando SDLResulta que me estoy sumergiendo en el mundo de los shaders y cuando voy a usar glCreateShader() en mi aplicación...boom, no funciona. Como puede ser si el resto de las cosas de OpenGL funcionan lo más bien?<div><br /></div><div>Bueno, parece que por alguna razón hay que cargar ciertas funciones antes de usarlas. </div><div>Por suerte existen librerias como <a href="http://glew.sourceforge.net/">glew</a> para hacer esto, pero también se pueden cargar a mano como se explica <a href="http://www.opengl.org/wiki/Load_OpenGL_Functions">acá</a>.</div><div><br /></div><div>Ahora estoy usando glew porque queria una solución rápida, pero el cargado a mano no parece ser muy complicado.</div><div><br /></div><div>Porqué esto es así? Ni idea, en la wiki de OpenGL no lo explican.</div>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-89281119623377275972011-11-13T11:20:00.002-02:002011-11-13T11:24:10.353-02:00DemosDesde hace unos dias que no puedo dejar de mirar <a href="http://en.wikipedia.org/wiki/Demo_(computer_programming)">demos</a>.<br />Los que tienen limitaciones de tamaño, como este de 64kb por ejemplo, son impresionantes.<br /><br /><div style="text-align: center;"><iframe width="420" height="315" src="http://www.youtube.com/embed/Y3n3c_8Nn2Y" frameborder="0" allowfullscreen=""></iframe></div>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-84075034390639777642011-06-26T20:48:00.000-03:002011-06-26T20:51:01.245-03:00Raytracing<div>Por hacer: objetos transparentes y espejados.</div><div><br /></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzdB3JzB41M12QQ3Lwi62dWdpROn_aiT_xxzqdMJPZUkt_QPy4wEA4fTLMKXmcy3nwWpaI_Em1YxuU1fsSliRVgYVNm7pLc33RIPYf9FU3rms-J1EhSbS8TuG_v1GRqY8w29yFIjOTal4/s1600/caca.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzdB3JzB41M12QQ3Lwi62dWdpROn_aiT_xxzqdMJPZUkt_QPy4wEA4fTLMKXmcy3nwWpaI_Em1YxuU1fsSliRVgYVNm7pLc33RIPYf9FU3rms-J1EhSbS8TuG_v1GRqY8w29yFIjOTal4/s400/caca.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5622679683017935426" /></a>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com4tag:blogger.com,1999:blog-3180638386345043227.post-12954337502532076402010-05-30T18:15:00.000-03:002010-05-30T18:27:14.718-03:00Vanishing Road v0.4<div style="text-align: left;">Vanishing Road was created for the Experimental Gameplay Project (http://experimentalgameplay.com/), for the theme "high velocity".</div><div>The code is really ugly at times and not optimized.</div><div><br /></div><div>Report bugs/send feedback to ninbolin + @ + gmail.com</div><div><br /></div><div>You can get the game here: <a href="http://gamejolt.com/open-source/games/arcade/vanishing-road/2532/">http://gamejolt.com/open-source/games/arcade/vanishing-road/2532/</a></div><div><br /></div><div><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7bVs23D4LyvXEFYp5TIyXUw3I_3NjZTKtP9aAn1Hjmbz9TVHHKMgIkiCb0g2y7N27L8t61m0IMvFXTkfqy5t09w4xm5Pv6VBtZITf7Pnrd46Un3qTUBf-vun2eeqZTgKgGyIKbtlLg8c/s400/screenshot.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 396px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5477176774377631682" /></div>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-55766494311925332172010-05-18T00:14:00.001-03:002010-05-18T00:17:05.969-03:00El 30 de mayo este blog cumple 3 añosY hace casi 8 meses que no escribia nada. <div>Así que feliz cumpleaños, porque probablemente después me olvide o simplemente no escriba nada por los proximos n meses.</div><div><br /></div><div>peace out</div>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-76370561299766231812009-09-26T01:26:00.000-03:002009-09-26T01:46:34.007-03:00spacethingyUltimamente estoy obsesionado con el espacio y el contenido procedural (gracias <a href="http://www.spelunkyworld.com/">Spelunky</a>). Estaba aburrido y me puse a hacer esto:<div><br /></div><div><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gRI7O0CCuB4&hl=en&fs=1&"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/gRI7O0CCuB4&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br /></div><div><br /></div><div>Espero que en el futuro (cercano o lejano, no me importa) se convierta en algun juego de exploración espacial de algún tipo.</div>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com2tag:blogger.com,1999:blog-3180638386345043227.post-8957258792942223712009-08-27T20:09:00.001-03:002011-06-27T09:33:06.934-03:00Programmer art x_x<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgutr4n6-yyYP-3DgcJyroRNclgtPmUMmFfrJwKYB3qGb2uLVUKIKrXZLE-TOuGxLTf5rAby3AqMC9WaYk2x85bJQ1tyMQ46vTbmJRhoLIJFTSb6pqW4hXpBqWkAshve0mmG6c1y9G4KEE/s1600-h/PICE651.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgutr4n6-yyYP-3DgcJyroRNclgtPmUMmFfrJwKYB3qGb2uLVUKIKrXZLE-TOuGxLTf5rAby3AqMC9WaYk2x85bJQ1tyMQ46vTbmJRhoLIJFTSb6pqW4hXpBqWkAshve0mmG6c1y9G4KEE/s400/PICE651.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5374787486102961458" /></a><br /><div style="text-align: left;"><br /></div><div style="text-align: left;">Gracias por existir artistas.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">Ah, sí, ya se pueden cargar nuevas escenas. Es bastante fácil, se define una zona (un rectángulo) y la escena a cargar, cuando el jugador llega hasta ahí...yuttini!!! nueva escena cargada</div><div style="text-align: left;"><br /></div><div style="text-align: left;">Tengo tremendos problemas para nombrar variables y tags, espero no estar solo en el mundo.</div><div style="text-align: left;"><br /></div>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com3tag:blogger.com,1999:blog-3180638386345043227.post-85073800493860674352009-05-15T17:30:00.001-03:002011-06-27T09:33:40.236-03:00A* / pathfindingPara el movimiento del personaje implementé un <a href="http://en.wikipedia.org/wiki/A*_search_algorithm">algoritmo A*</a>.<br />Lo que hace es buscar el camino más corto entre dos puntos, en este caso, donde está ubicado el personaje y a donde queremos movernos. Obviamente el algoritmo se encarga de bordear los obstáculos (nodos no navegables) que puedan haber en el camino.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiblCTg3iakpqCV4cgMHrGCI4dEFcABN0zynfjmE9JbpzwljgyLZ_fY8LSRwBjGfKa62UFknfFRlpwioEylrHQtzmXevNwXt3SJ_zS34yZN7kUlhwzdD4rDSFSiPN2o7W3hlzNsamG5G8c/s1600-h/astar.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiblCTg3iakpqCV4cgMHrGCI4dEFcABN0zynfjmE9JbpzwljgyLZ_fY8LSRwBjGfKa62UFknfFRlpwioEylrHQtzmXevNwXt3SJ_zS34yZN7kUlhwzdD4rDSFSiPN2o7W3hlzNsamG5G8c/s400/astar.jpg" alt="" id="BLOGGER_PHOTO_ID_5336226057708752178" border="0" /></a><br /><br />En la imagen de arriba el nodo verde es el origen, el rojo el destino, los blancos son los nodos navegables y los grises son los obstáculos. Los violetas representan los nodos que fueron analizados.<br />No voy a explicar a fondo como funciona el algoritmo ya que hay <a href="http://theory.stanford.edu/~amitp/GameProgramming/index.html">varios</a> <a href="http://www.gamasutra.com/features/20010314/pinter_01.htm">artículos</a> muy buenos.<br /><br />El algoritmo se basa en dos funciones, h(x) y g(x).<br />g(x) = distancia desde el origen hasta x<br />h(x) = distancia desde x hasta el objetivo<br /><br />Para h(x) por lo general se usa la distancia más corta (una línea recta entre los puntos). Esta función se puede variar para encontrar caminos más reales, por ejemplo para evitar cáminos con zigzags innecesarios, entre otras cosas.<br />Comenzando desde el nodo inicial se agregan sus nodos adyacentes (aquellos que sean válidos) a una lista de posibles nodos a visitar. Luego de esa lista se elije el que tenga menor valor de g(x) + h(x) y a su vez para cada nodo elegido se agregarán sus adyacentes a una lista de posibles candidatos.<br /><br />Como grilla, para saber que nodos se pueden navegar y cuales no, se usa la generada <a href="http://blolling.blogspot.com/2009/03/todavia-existo-y-holapercy-tambien.html">anteriormente</a>.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvdFdhixBPA_mqK3M25fRdxG7QFEWvfOjy7e0FUInE2QSOwBWAOedmnD6veETmFB6FsV57ju9o8S2AqjpTUufR7oAAJs1TqC-QyHqey5g-Yyq0FPpUsVPLV5C0kYcn6D4-XzWlGxu9uHQ/s1600-h/holaperpathjpg.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 301px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvdFdhixBPA_mqK3M25fRdxG7QFEWvfOjy7e0FUInE2QSOwBWAOedmnD6veETmFB6FsV57ju9o8S2AqjpTUufR7oAAJs1TqC-QyHqey5g-Yyq0FPpUsVPLV5C0kYcn6D4-XzWlGxu9uHQ/s400/holaperpathjpg.jpg" alt="" id="BLOGGER_PHOTO_ID_5336226062374599506" border="0" /></a><br /><br />El único problema que podríamos tener es si se clickea en una zona que no este pintada en azul, ya que ese nodo no es navegable y el algoritmo no lo tendría nunca en cuenta. Para solucionar esto, si el jugador intenta moverse a una zona no navegable primero se busca un nodo válido para usar como destino.<br />Por ejemplo, al clickear sobre la puerta el personaje va a moverse hasta uno de los nodos azules en el piso cercanos a la misma.<br /><br />Agregué más cosas al juego en estas semanas, la más interesante (o que me resulto divertida de hacer) es la del scripting. A través del xml de las escenas se pueden scriptear distintas acciones para los elemenos del juego, ya sea actores, items, objetos, etc...<br /><br />Supongo que la próxima entrada será sobre eso.ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com2tag:blogger.com,1999:blog-3180638386345043227.post-26534692172995840292009-03-13T18:36:00.001-03:002011-06-27T09:33:48.567-03:00todavía existoDespués de un largo y pesado semestre en el cual holapercy estuvo abandonado, ha vuelto a la vida.<br />Me propuse programar algo para holapercy -por más chico que sea- todos los días. Así que llevo una listita con features y cosas que tengo que ir agregando o arreglando.<br />Lo primero que me puse a hacer fue un re-estructurado de casi todo, que era asqueroso y desprolijo (lo sigue siendo, pero en menor medida).<br /><br />La idea, para el que no sabe, es transformar holapercy en algun tipo de aventura gráfica y que sea relativamente sencilla su creación.<br />Ya tengo hechas cosas básicas como cargar escenas, las cuales se definen en un xml, movimiento sencillo del personaje y poder levantar objetos del mundo. Una de las cosas que más me interesa es el tema de <a href="http://en.wikipedia.org/wiki/Pathfinding">pathfinding</a>, el cual todavía no estudie del todo.<br />Primero me faltaba algo: definir en que zonas de la escena los actores (personajes, ya sean npcs o el propio jugador) pueden moverse.<br /><br />Mirando el <a href="http://www.adventuregamestudio.co.uk/">AGS</a>, lo que hacen ahí es "pintar" el área donde uno quiere permitir que los personajes caminen. A partir de esto decidí implementar mi solución.<br />Una escena consta de 2 capas (probablemente terminen siendo más al agregar nuevos features), primero la escena en si misma y luego una imagen con las areas "caminables" pintadas en azul.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlWtzDTjRFfq_CmNeSTrnQ0RkU9m38RDBFK6xFVI6pJnYHM_BsG5GdGzDWp5jTTmFgNN5qblONc5Ueh7oJ8BtG02aRlyb2k9mjxo-Kd3Ply6_FF00t2cRmOfcCYSwPu4gcREZO7oIUQ40/s1600-h/cuarto.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlWtzDTjRFfq_CmNeSTrnQ0RkU9m38RDBFK6xFVI6pJnYHM_BsG5GdGzDWp5jTTmFgNN5qblONc5Ueh7oJ8BtG02aRlyb2k9mjxo-Kd3Ply6_FF00t2cRmOfcCYSwPu4gcREZO7oIUQ40/s320/cuarto.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5312793577934477234" /></a><br /><br /><span style="font-style:italic;">(El cuarto fue dibujado por <a href="http://viejomostro.blogspot.com/">el viejo</a> y asquerosamente pintado por mi una tarde que no tenia nada mejor que hacer)</span><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSkLNPy4IVoYPRTPZPBLmr1Km0Ud92SJTUrtkxurOrVMC7WZ__vS7Pv6vj6coeMiv1fNzCOJdC1_IB3IdTEcZ7cDHcfHPacRkEo6Zcr2T89F-7qNRLjdLUCKefc25h32ASy4VZaAZX74g/s1600-h/cuarto_walk.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSkLNPy4IVoYPRTPZPBLmr1Km0Ud92SJTUrtkxurOrVMC7WZ__vS7Pv6vj6coeMiv1fNzCOJdC1_IB3IdTEcZ7cDHcfHPacRkEo6Zcr2T89F-7qNRLjdLUCKefc25h32ASy4VZaAZX74g/s320/cuarto_walk.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5312794313243309586" /></a><br /><br />Como estaba hasta ahora, uno podía clickear en cualquier lado del cuarto y el personaje se movía hasta ahí, sin importar que fuera el techo o que terminara sobre la cama.<br /><br /><br />Combinadas:<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs7gxvrRAC6kqjbjeLMU8HRBlTBGfqCtxRMT-tdtv9TynKHhdFoP_M3pKizNuvwTJEod2Rk1Mjm3yQYlVNamIZINmuINKSnl0D2V6OHAPkgirliaVQuBPYDOKbRD8fkfq2qYk5cAK_1q4/s1600-h/cuartocomb.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs7gxvrRAC6kqjbjeLMU8HRBlTBGfqCtxRMT-tdtv9TynKHhdFoP_M3pKizNuvwTJEod2Rk1Mjm3yQYlVNamIZINmuINKSnl0D2V6OHAPkgirliaVQuBPYDOKbRD8fkfq2qYk5cAK_1q4/s320/cuartocomb.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5312795456339276114" /></a><br /><br />Luego imaginamos el layer pintado como una grilla formada por celdas de 16x16, con valores de 0 (celda sobre la cual no se puede caminar) y 1 (para las accesibles). Siendo el tamaño de la ventana 640x480 esto se puede ver como un array de 40x30 (640/16 = 40, 480/16 = 30).<br />Se escanea celda por celda para ver si hay a lo sumo 1 pixel de color azul y en caso de haberlo, se marca esa posición como accesible para los personajes. Es por eso que al pintar no es necesario pintar muy cerca de los objetos como la cama o el escritorio, ya que con 1 solo pixel ya podriamos estar llenando una celda que este sobre el objeto.<br /><br />Dentro del juego se puede presionar f3 para ver la grilla y el área sobre la cual se puede caminar.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHv1MkbguTzaviUyoR0kS_5L33_goVIvr_vd-W4_Hz56mnMiTb5kxAXC2hljkEXPLPuVM2v-CwBFlZK_RhxswvOBz9T5tCfyzCLkTNocE1La5Yue5JDQxfh-tltM8FHS5UY9KC4PxVH70/s1600-h/holaper.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHv1MkbguTzaviUyoR0kS_5L33_goVIvr_vd-W4_Hz56mnMiTb5kxAXC2hljkEXPLPuVM2v-CwBFlZK_RhxswvOBz9T5tCfyzCLkTNocE1La5Yue5JDQxfh-tltM8FHS5UY9KC4PxVH70/s320/holaper.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5312836916789723922" /></a><br /><br />El próximo paso va a ser implementar un algoritmo A* para el movimiento del personaje, usando como mapa de navegación la grilla creada a partir de la capa "pintada" de las escenas.ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com1tag:blogger.com,1999:blog-3180638386345043227.post-31554265418609271902008-07-31T19:22:00.001-03:002011-06-27T09:33:54.568-03:00speechYa está casi que totalmente implementada la clase Speech.<br />La cual se refiere, obviamente -o no tanto- a los diálogos.<br /><br />Al crear un Actor se crea una instancia de Speech, la cual va a estar ligada a este Actor.<br />De ahí en más se puede usar Actor.talk("blah blah") para que se imprima (posiconado sobre el Actor) la frase "blah blah".<br />Se puede asignar el color y tamaño de la letra de antemano.<br /><br />Si no se le asigna ningún personaje al Speech se toma como si fuese parte de una narrativa y se muestra, en principio, en la parte superior de la pantalla. Supongo que lo haré para que se pueda definir la posición del texto a gusto.<br /><br />También hay un sombrero.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic8YuqympzlLOsQGM08jF7RMHOybiE9sJs0KIno1u56hEgG6CnB5mQaLrLTHjbRE9IuRO6V9j5pwjArpMCX4dqjDobT6EXokraA8zUbs_h2oZyfHvvxe27WhOELMVAeJbNcHbb02_bzzE/s1600-h/icantpickthatup.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic8YuqympzlLOsQGM08jF7RMHOybiE9sJs0KIno1u56hEgG6CnB5mQaLrLTHjbRE9IuRO6V9j5pwjArpMCX4dqjDobT6EXokraA8zUbs_h2oZyfHvvxe27WhOELMVAeJbNcHbb02_bzzE/s400/icantpickthatup.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5229308681581388514" /></a>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com3tag:blogger.com,1999:blog-3180638386345043227.post-56863892447628874762008-07-22T19:54:00.001-03:002011-06-27T09:34:05.992-03:00Habemus (working, a medias) inventory!inventory!<br />Si, es esa obra de arte color gris.<br />Como podran ver tengo un cerebro en mi inventorio, espectacular, lo se.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQNT4ZitqaYucLZBFywBfD7bP3CQ4Z12TQ72I7QwMms9A0UtGtiCeRV3o0o2WzQtoB1dxZ6YAWsNlJCmSBrCYA4I3uKb1w_4J2tV7ihWX3-MfuffPSbLM3sPR3qUNKlV2evIiWMslgCKM/s1600-h/brainininv.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQNT4ZitqaYucLZBFywBfD7bP3CQ4Z12TQ72I7QwMms9A0UtGtiCeRV3o0o2WzQtoB1dxZ6YAWsNlJCmSBrCYA4I3uKb1w_4J2tV7ihWX3-MfuffPSbLM3sPR3qUNKlV2evIiWMslgCKM/s400/brainininv.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5225975974883726818" /></a>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com1tag:blogger.com,1999:blog-3180638386345043227.post-45680583982052701152008-07-16T18:42:00.001-03:002011-06-27T09:34:28.156-03:00v0.22ola<br />Hago este update porque:<br />1-hace mucho no escribia nada en mi interblag<br />2-dibuje el mejor cerebro usando software LIBRE Y GRATUITO<br /><br />cosas que puede hacer:<br />-cargar un personaje y hacer que se deslice agilmente a donde se clickee<br />-cargar una pantalla con items a partir de un archivo xml<br /><br />cebero:<br /><center><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4GvlAwmJ1JdhNpzgmm445B8hXCPYYtLD4exds8Hnvu7uA1JdxyRiP6PwUPjt-YiZ25YR8pVohdQggCXJp52jvUKt_3eheQmR8ftth-OsUTnrDWEED_pCQ99APCIkTf6NDs9Ltpxg2qcQ/s1600-h/holapercy.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4GvlAwmJ1JdhNpzgmm445B8hXCPYYtLD4exds8Hnvu7uA1JdxyRiP6PwUPjt-YiZ25YR8pVohdQggCXJp52jvUKt_3eheQmR8ftth-OsUTnrDWEED_pCQ99APCIkTf6NDs9Ltpxg2qcQ/s400/holapercy.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5223731542515394258" /></a></center>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com1tag:blogger.com,1999:blog-3180638386345043227.post-27662142821618989592008-05-02T11:16:00.000-03:002008-05-02T11:18:22.040-03:00webocomicCon ustedes, mi mas fantastica pieza de arte:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUDRKY3y3Acmr4QZnICrfgE7Htbo4ywPVsn9J5oKKWUoys8JRQVqOV79UF8NL8Iy34_P_c6FCFHVI_ucLrmRncLRLgQNOtNmqYHT6odF7QXI70i2Pg5w64WzJ6Bu1LHMYOWICX-SjdMMo/s1600-h/epicending.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUDRKY3y3Acmr4QZnICrfgE7Htbo4ywPVsn9J5oKKWUoys8JRQVqOV79UF8NL8Iy34_P_c6FCFHVI_ucLrmRncLRLgQNOtNmqYHT6odF7QXI70i2Pg5w64WzJ6Bu1LHMYOWICX-SjdMMo/s400/epicending.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5195784573435018962" /></a>ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com4tag:blogger.com,1999:blog-3180638386345043227.post-31133394602958126682008-03-24T15:19:00.001-03:002008-03-24T15:19:48.631-03:00: )Me encanta mi blog, tiene tags, nadie lo lee, es lo mejor.ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com9tag:blogger.com,1999:blog-3180638386345043227.post-48558725995401889092008-02-07T21:53:00.000-02:002008-02-07T21:55:21.616-02:00GAL2Hoy estaba estudiando y usando (parte de) mi potencial cerebral resolvi un ejercicio como hacia años no lo hacia. <br />Me senti bien.<br /><br />En otras noticias: miren Arrested Development.ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-47240187916952419042008-01-24T14:06:00.000-02:002008-01-24T14:12:42.653-02:002008Vamo a hacer un webcomic?<br />Vamo a recibirno de ingenierio?<br />Vamo a olvidarno la 's'?<br /><br />El otro dia me hice tremendo frapuccino (sospecho que alguna otra letras tambien va doble).<br />En tu cara Ronald McDonald.<br /><br /><br />BLACK PANTHERS FIGHTninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-48021248205915750562007-12-13T14:56:00.000-02:002007-12-13T14:58:05.681-02:00xfireLe agregue la barrita de xfire (que dice que juego he estado jugando ultimamente) ahi arriba porque pinto.<br />Una chotada.<br /><br />La web3.0 va a ser sobre llenar tu blog de porquerias que sacas de otras webs2.0ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-76709706364910339792007-11-27T18:18:00.000-02:002007-11-27T18:22:11.856-02:00Hace tiempo que no actualizabaIgual nadie lee esto, pero no me importa, porque dentro de pila de tiempo voy a leer las cosas (no tan) interesantes que pasaban en mi vida.<br /><br />La cosa es asi:<br />-ya cumpli años, creo que el token me cayo ayer jugando al brain age recien, por mas que hacen 10 dias del cumpleaños.<br />-al final fui a la fiesta de la x. Gracias a mis amigo(s) por regalarme la entrada y a mi amigo marcel por venderme otra entrada por 200 pei, la cual pague a medias con mi novia. Estuvo demas, la lluvia: es-petacular. Lastima que no toco motosierra.<br /><br />Hoy me levante muy feliz sin ninguna razon apartente, demas.<br />Estoy terminando el laboratorio5 de programacion3, algun dia, cuando este por recibirme o este haciendo entregas de quien sabe que materia re salada voy a leer esto y voy a sonreir.<br /><br />Peace out.ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com2tag:blogger.com,1999:blog-3180638386345043227.post-59169273946247371002007-10-29T16:28:00.000-02:002007-10-29T16:30:50.167-02:00La Fiesta de la X, mi fiesta de cumpleañosEl 17 de Noviembre es mi cumpleaños, tambien es la Fiesta de la X.<br />Nose si ir, me embola que sea en el Parque Roosevelt. Me embola un cacho que salga $260, siempre salio eso mas o menos, por mas que hay gente que me dijo que sin ir mas lejos el año pasado salia mucho mas barato, para mi estan equivocados.<br />En fin, nose que hacer, ir, no ir, eh que se yo.ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com0tag:blogger.com,1999:blog-3180638386345043227.post-25388643722443408522007-10-18T01:03:00.000-02:002007-10-18T01:10:32.237-02:00Estoy al pedoSupuse que todo el mundo queria saber que es lo que estoy escuchando asi que intente agregar al sidebar la info que tira mi <a href="http://last.fm">last.fm</a><br />El supuesto codigo que te tira para blogger no funciona de entrada, no tengo ganas de buscarle (mucho) la vuelta, asi que todo queda como esta.<br /><br />whatever<br /><br />a por python<br /><br />EDIT: lo arregle, punto para mi.ninhttp://www.blogger.com/profile/11847331209891676263noreply@blogger.com1