lunes, 16 de febrero de 2009

PLANTILLA DRAWABLEGAMECOMPONENT

El artículo original fue escrito el 15-Dic-08.

Si haz estado usando XNA GS desde hace un tiempo, deberías saber qué son los denominados componentes de juego.

Lo que es más, además deberías saber que gracias a la integración de XNA GS con Visual Studio, a fin de agregar un nuevo componente sólo tienes que:

  1. Ir al explorador de soluciones,
  2. Navegar entre la lista de proyectos,
  3. Hacer click con el botón derecho del ratón sobre el proyecto elegido,
  4. Seleccionar Agregar -> Nuevo Item,
  5. Elegir "Game Component" de entre la lista de componentes disponibles,
  6. Pulsar el botón "Agregar", y
  7. Voilá ... tu nuevo componente de juego se incluyó en el proyecto.

Esto es fenomenal!

Ahora bien, y de nuevo: si has estado utilizando el framework de XNA deberías saber que hay una especificación de la clase de componentes de juego para aquellos que se dibujen en pantalla; esto es: "DrawableGameComponents".

Desafortunadamente, si quieres crear uno de esos componentes no hay atajos, lo cual significa que o bien lo creas desde el principio o bien utilizas un componente de juego como archivo fuente y luego lo modificas como corresponda. En resúmen, no hay aún una plantilla de componentes de juego dibujables integrada a Visual Studio.

Para cambiar esto, sin embargo, podrías crear tu propia plantilla "DrawableGameComponent", llendo en VS a "Archivo -> Exportar Plantilla", y luego eligiendo el item que quieres exportar como la plantilla.

Luego de realizar la totalidad del proceso de exportación puedes integrar tu nueva plantilla a la lista de items de entre los cuales puedes elegir al utilizar la funcionalidad "Agregar Nuevo Item" de Visual Studio.

El problema con esta solución es que la nueva plantilla será listada por defecto en la sección "My Templates" del cuadro de diálogo "Agregar", completamente desvinculado a la sección de items de "XNA Game Studio 3.0". Quizás te parezca aceptable la solución brindada "por defecto", pero si no te lo parece, entonces deberás modificar un poco la plantilla generada recientemente, cambiar su ubicación y una cosa más que voy a explicar a continuación.

Primero, he subido una plantilla de clase para el componente de juego dibujable aquí:

http://www.megaupload.com/es/?d=74ITZDJX

Este archivo .zip contiene a todos los archivos apropiados que nos ayudarán a integrar de la mejor manera a la plantilla en Visual Studio.

Así que, sigue estos pasos:

  1. Descarga el arhivo zip antedicho,
  2. Opcional: abre el archivo ".vstemplate" paa averiguar como funciona el truco,
  3. Busca la carpeta "ItemTemplates" en el directorio donde está instalada tu versión de Visual Studio 2008, y
  4. Copia el archivo .zip a dicho directorio.

Usualmente, la carpeta "ItemTemplates" está ubicada en "%vs90comntools%\Common7\IDE", así que digamos que si estás usando la edición de VS08 Standard, Pro or Team, probablemente encuentres algo así: "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates".

Casi estamos ahora por terminar. Hay una tarea pequeña que debemos hacer previo a alcanzar nuestra meta:

  1. Ve a "Inicio -> Microsoft Visual Studio 2008 -> Herramientas",
  2. Abre "Visual Studio 2008 Command Prompt" (línea de comandos de Visual Studio '08) como un Administrador,
  3. Ejecuta el siguiente comando auto-explicativo "devenv /installvstemplates".
  4. Cuando el comando finalice su ejecución, abre Visual Studio de nuevo.

En caso que estes utilizando la versión express, tienes que ubicar la carpeta en menu "Inicio" para dicha edición y, en lugar de escribir "devenv" tal cual indiqué en el punto (3.) arriba, debes pués escribir "VCSExpress".

Si todo sale bien, cada vez que desees agregar un nuevo item verás algo así:

O mejor aún, así:
Dicho sea de paso, puedes usar tu propio diseño de ícono en caso que no te agrade el que está incluído con el archivo zip. Para reemplazarlo, sólo borra el "viejo" e incluye el tuyo propio dentro del archivo zip, respetando el viejo nombre (esto es, el nombre solicitado por el archivo plantilla XML).

Bueno, esto es todo. Espero que lo encuentres útil. Y si, puedes repetir el mismo procedimiento para cada plantilla que deses incluir dentro de la sección de items "XNA Game Studio 3.0".

Salúd!
~Pete