jueves, 18 de junio de 2009

Buscando errores. Depurar un juego XNA (I)

Depurar es el proceso de encontrar y corregir errores en el código fuente de un programa, por lo tanto para llegar a buen puerto con nuestro juego es importantísimo tener un conocimiento mínimo para poder realizar esta tarea correctamente, así que empecemos.

Para empezar, ¿nunca te has preguntado que es la combo box que tenemos al lado del play? si, esa que pone Debug.

Esta opción nos permite seleccionar el modo en el que compilaremos, por defecto está en debug, y solo lo cambiaremos a Release cuando nuestro juego esté acabado y 100% libre de errores. Al compilar en modo debug, se habilitan una serie de cosas, como la carga de símbolos, que nos permitirá  analizar nuestro código mientras lo ejecutamos.

PUNTOS DE INTERRUPCIÓN

Los puntos de interrupción (break points) es lo que utilizaremos para indicarle al compilador que queremos que se pare en ese punto del código, podemos poner tantos puntos de interrupción como creamos convenientes, el código se parara cada vez que tope con uno. Para poner un punto de interrupción solo hay que ponerse encima de la línea de código y pulsar F9. Automáticamente veremos un circulo rojo a la izquierda de la línea, además esta se coloreara de rojo.

Saber detectar el mejor sitio donde poner un punto de interrupción te lo dará el tiempo y la experiencia…

Una vez tenemos todos lo puntos colocados, lo único que tenemos que hacer es ejecutar el juego, como he dicho antes, cuando el código se tope con uno de los puntos se parará, el Visual Studio se te pondré en primer plano y la línea donde se ha parado se coloreara de amarillo.

Una vez parado el código, podremos analizarlo, ver el valor de la variables y por lo tanto buscar los errores que nos pueda estar dando el juego.

VENTANA DE INMEDIATO

La ventana de inmediato es una ventana que se activa al entrar en modo de depuración, normalmente se encuentra en la parte de abajo del Visual Studio, en forma de pestaña. Esta ventana nos permite ver y modificar el valor de una variable en tiempo de ejecución, eso es, mientras ejecutamos el juego-

Para ver el valor solo tienes que escribir en ella el nombre de la variable con un interrogante delante, por ejemplo, si tenemos una variable que se llama vidas, podemos escribir “?vidas” e intro, y se nos mostrará por pantalla su valor.

Si no escribimos el interrogante, podemos asignar el valor de la variable, por ejemplo, nos puede estar pasando que cuando nos matan, el juego no resta la vida, por eso depuramos, para encontrar el por que, ponemos un punto de interrupción en el evento que se lanza al morir y nos ponemos a depurar, vemos que efectivamente no se esta restando la vida por el motivo X, pero queremos ver como se comportara cuando vidas llegue a cero, para eso escribimos “vidas = 0” y pulsamos intro y automáticamente la variable vidas pasará a valer 0, esto puede llegar a ser muy útil.

MOVIENDONOS POR EL CÓDIGO.

Hay una serie de teclas que nos permitirán movernos por el código mientras depuramos, estas son a mi entender las más importantes:

  • F10, avanza a la siguiente línea de código.
  • F11, avanza a la siguiente línea de código, entrando en los métodos si la línea es una llamada a un método.
  • F5, avanza hasta el siguiente punto de interrupción.
  • F9, establece un nuevo punto, en caso de estar ya activado, lo desactiva.

 

Mañana hablaré un poco más sobre como depurar…

 

Etiquetas de Technorati: ,

No hay comentarios:

Publicar un comentario en la entrada