Haciendo un pacman en xna

Junio 24, 2009

Como desarrollador de videojuegos con cierta experiencia siempre he sentido un vacío en mi interior, ya que en mi lista de juegos realizados ninguno tiene animaciones, por mi falta de competencia a la hora de obtener gráficos animados, pues yo soy programador y el dibujo por ordenador no es mi fuerte francamente. Así que hace como 2 años me propuse hacer el pac-man bajo XNA para luego dar una charla sobre la experiencia. La idea de tomar el pac-man se debe a que es un juego relativamente sencillo en cuanto a sus animaciones. Sin embargo mis estudios me dejaron sin tiempo para esta clase de aficiones, por lo que el proyecto nunca llegó a buen puerto.

Así que en mayo por culpa de la cercanía de los examenes y porque meses atrás me había puesto a recolectar imagenes de la que sacar ideas para realizar los gráficos, me puse finalmente manos a la obra y logré sacar por completo el tema de los recursos relacionados con la fuente, tiles y sprites del juego. Y poco a poco fui programando un poco al tuntún cosas para primero lograr pintar el laberinto y luego tener al jugador pudiendose mover por este. Y eso logré antes de los examenes, hasta que ya fue inevitable que tuviera que ponerme con lo otro.

Y hace 2 días, ahora que ya han terminado los exámenes, me puse a mirar el código que llevaba, el cual por cierto apenas había comentado porque casi siempre dejo eso para el final y por ello me he comido mi propio marrón con patatas. No obstante ya me estoy haciendo a la idea de cual es la arquitectura farragosa del juego y justo hoy terminé de modificarlo para que el tunel que comunica ambos lados de la pantalla funcione como debería. Ahora lo siguiente es ponerme a programar el tema de las colisiones para los puntos y empezar a plantearme como hacer la IA de los fantasmitas.

Al principio pensé que el juego sería relativamente fácil, pero no paran de surgir pequeños detallitos apenas apreciables como por ejemplo que el jugador al comer los puntos se frena un poquito y por eso puede huir de los fantasmas en los pasillos vacios. Además no se como voy a poder afrontar el comportamiento de los fantasmas, que no parece un tema trivial precisamente. Sea como fuere, todavía me queda un buen camino por delante y aunque tampoco estoy dando un uso muy intenso a XNA de momento no me siento especialmente incomodo con esta API, aunque supongo que podría estar mejor el tema.


Documentación de la API de Small Basic

Junio 24, 2009

Bueno, por fin está en castellano y accesible desde la página oficial, la documentación en castellano de la API del lenguaje. Así que ante cualquier duda acudid a la referencia oficial, en vez de a mis comentarios anteriores, aunque en los mios vienen ejemplos de como se usan las cosas. En fin, para futuras versiones que añadan cosas, simplemente me limitaré a poner ejemplos para ilustrar a los entusiastas de la programación en Small Basic.


Retomando las cosas por donde estaban…

Junio 22, 2009

Por fin he terminado los exámenes de junio, que no han sido tantos como los del año pasado pero han sido un tanto espesitos en su contenido. En fin, ahora solo queda esperar a ver que notas he sacado y con un poco de suerte me las quite y sea ingeniero técnico en mayúsculas. Así que durante esta semana espero ponerme con todo lo que dejé aparcado y ponerme al día, que no son pocas cosas. De primeras tengo un poco de trabajo atrasado para la universidad, luego tengo que terminar un tetris y un pacman que tengo pendientes, y finalmente está un proyecto sobre una herramienta para hacer juegos que quiero ponerme este verano a investigar.

También quería ponerme a escribir durante el verano, retomar mi estudio del lenguaje japonés, intentar mejorar mi cutre nivel de dibujo y una larga lista de más cosas que seguramente no haga. Pero lo del parrafo anterior y pasarme unos cuantos juegos de los que tengo pendientes, son los candidatos seguros que van a copar mi tiempo durante el verano. Así que va a ser un verano interesante, aunque también depende de que logre aprobar lo que me queda de la carrera. A ver si hay suerte.


Los arrays en Small Basic 0.5

Junio 22, 2009

Buenas amigos del Small Basic. La semana pasada salió la versión 0.5 del lenguaje y traía un gran cambio en su interior, que habían cambiado el manejo de los arrays, para hacerlo más similar a lenguajes como C. El autor ha creado un artículo sobre como manejar los arrays en esta nueva versión.

El caso es que la llegada de esta nueva forma de hacer las cosas ha implicado cambios en dos operaciones de la librería File, GetDirectories y GetFiles que ahora solo reciben un parámetro, la ruta de la que queremos el listado de directorios o ficheros. El caso es que antes teníamos que indicarle el nombre del array donde se tenían que almacenar, pero ahora las dos operaciones devuelven si tienen éxito un array con los datos directamente.

Esto implica que la librería Array ha tenido también que cambiar. Primero tenemos que las operaciones GetValue, RemoveValue y SetValue han dejado de ser útiles y es recomendable no utilizarlas, tan solo se han mantenido por temas de retrocompatibilidad con programas que fueran desarrollados con la versión 0.4. Aunque dicha retrocompatibilidad no es total, ya que las operaciones ContainsIndex, ContainsValue y GetItemCount no reciben ya una cadena con el nombre del array, sino una variable con el array entero.

Y esos son los cambios de la API de Small Basic en esta nueva versión. Lo único realmente malo del programa es que no se puede escribir ] sin que capture el evento de control+ que incrementa el tamaño del texto. Pero espero que lo corrijan en un futuro, de momento siempre queda el recurso de pulsar Alt+093 en el teclado numérico o usar otro editor para utilizar arrays ^_^U


Small Basic 0.5

Junio 17, 2009

Muy buenas noticias para todo el mundo interesado en Small Basic, ha salido oficialmente la versión 0.5 hoy mismo, aunque ayer salió un artículo sobre las novedades principales de esta versión. Además la cosa no se queda ahí, han dado soporte al español y también han traducido la documentación a nuestro querido lenguaje. Así que ahora podreis disfrutar todavía más, jej.

La principal novedad de esta versión es que por fin podemos manejar arrays de forma más natural, como en otros lenguajes. También se nos avisará si estamos intentando utilizar una variable que no ha sido inicializada, para evitarnos dolores de cabeza innecesarios. En cuanto a las librerías, creo que no ha cambiado nada, por lo que sigue siendo retrocompatible, lo cual está muy bien. Así que en cuanto termine los examenes esta semana, me pondré a ver que tal va el cacharro.

PD.: Si al bajar la nueva versión os está bajando la 0.4, tendreis que limpiar la caché para poder hacerlo.

PD2.: Sí que hay algunos cambios en las librerías en lo referente a los arrays, así que la próxima semana comentaré qué ha cambiado. Y de paso actualizaré las entradas antiguas a medida que pueda.

PD3.: Por cierto que hay un pequeño problema con el IDE y es que puedes aumentar el tamaño del texto o reducirlo con control+ o control-, pero claro para poder escribir ] tienes que pulsar AltGr+ y eso envía la señal de que se está pulsando contro alt +, luego lo toma como que quieres aumentar el texto.