jueves, junio 22, 2006

Fast Fordward

Estas semanas me dediqué a programar mucho de lo que había perdido. Por un lado creo que valió la pena ya que pense nuevamente la estructura del juego, programaticamente hablando (en otras palabras la arquitectura). Y creo que esta vez quedó mejor que la anterior. Siguiendo las ideas que me dieron mis amigos, esta vez hice una estructura completa de objetos. Todo son objetos, hasta el mismo fondo.

La ventaja de esto es que puedo crear funciones virtuales como las del sistema de colisión y automatizarlo. Por ejemplo, despues de evaluar el movimiento de todos los objetos, cada uno verifica si entró en contacto con algún otro objeto o parte del mismo nivel y enviandose mensajes entre ellos para ver como deben de reaccionar a tal colisión. Como el sistema de colisión se hereda de una clase superior en todo ellos, pues no es necesario ver con que chocamos y llamar diferentes tipos de funciones por cada tipo de objeto que exista en el juego.

Estoy siguiendo la misma idea en cuanto a cómo se mueven los objetos; agregando los serviciales apuntadores a funciones miembro. En el caso del jugador, es por medio de dispositivos de entrada como el teclado o el joystick. Para los enemigos es, claro, un algoritmo de IA o algun patrón de movimiento. Lo interesante aquí es que todos usan la misma interface derivada de la clase base. Por lo que virtualmente todo objeto puede recibir instrucciones de movimiento ya sea desde un dispositivo de entrada o un algoritmo.

¿En que ayudaría en la práctica? Pues por ejemplo, digamos que el jugador quiere que la nave entre en piloto automatico, simplemente nuestro apuntador cambia a otra función (de, por ejemplo, teclado a algoritmo de autopiloto) y por tener la misma interface, a un nivel mas alto no es necesario hacer nada. Oh! Maravilloso mundo de los objetos!

Estoy contenta como quedo el fundamento arquitectónico. Así que pude avanzar un poco mas con el codigo del objeto protagonista (para controlar la navecilla) y también agregé un par de enemigos a manera de prueba. Todo funciona como se esperaba.

La semana pasada y lo que va de ésta, me dediqué al arte. Ya tengo varios sprites de la navecilla como va a quedar finalmente. Tambien tengo unos bocetos de la piloto; una niña bonita como yo =P Espero ponerlos aquí para la próxima semana.