jueves, octubre 05, 2006

Primera subida de datos

Proyecto 1: una librería de clases extendidas.
Proyecto 2: un tutorial de XNA con lo que vaya aprendiendo.
Bien, pues como lo prometido es deuda, aquí van los primeros archivos que publico en el blog. Están accesibles desde mi googlepage pero tened en cuenta que allí solo voy a publicar los índices de los archivos que vaya subiendo. Aquí es donde está el meollo de la cuestión con comentarios y eso.

En primer lugar os presento el proyecto en el que estoy enfrascado ahora. Se trata de una librería de clases que extiende las funcionalidades de algunas clases de XNA y las simplifica. El factor importante de XNA (que nunca hay que perder de vista) es que funciona como cualquier IDE de Visual Studio y puedes crear tus propios componentes para el toolbox. Así es que yo me he creado dos componentes (de momento). Los podéis encontrar en la solución MyXNA (a la que pronto rellamaré como XNAClub). En el mismo zip he incluído un juego de pruebas titulado TutorialKina que muestra el funcionamiento de ambos componentes.

El primero de los GameComponents se llama StaticSprite y encapsula un SpriteBatch y un Texture2D. Me he liado bastante pero he conseguido (cutremente, eso sí) que el dichoso elemento aparezca en el toolbox (recordad: una vez habéis compilado la solución y tengáis un proyecto de juego abierto que tenga como referencia el MyXNA). El rpoblema es que aunque pone muy bien los métodos en la pantalla de propiedades no me gusta el sistema que he escogido para hacer los métodos get y set de las mismas. He utilizado un vector de dos elementos para las posiciones en que se debe empezar a leer la textura y a dibujarla y para los tamaños de los rectángulos de entrada y salida, pero eso de "v[0]" y "v[1]" en la ventana de propiedades queda muy mal. Supongo que esto se formateará como cualquier otro componente compuesto de cualquier proyecto de Windows Forms en .NET, pero el caso es que no se hacerlo. ¿Podéis ayudarme?

El segundo de los GameComponents se llama MovableSprite y podéis imaginar qué hace. Hereda de la clase anterior todas las propiedades y métodos (incluyendo los fallos que he detallado anteriormente) y añade un control de teclado que permite mover el sprite por la pantalla (sin control de colisiones) con las teclas de dirección. Si no se tiene pulsada ninguna, el sprite se mantiene parado (no solo en el lugar de la pantalla, sino sin reproducir la setie de imágenes del mismo).

Los nombres que les he puesto son más cutres que la Gioconda con mechas verdes pero acepto sugerencias. Mis próximos objetivos son un AlphaSprite que contenga una propiedad con el color que se tiene que tomar como canal alpha y que éste aparezca transparente en un grado determinado por otra propiedad y una manera de detectar las colisiones.

En segundo lugar, el segundo proyecto en que estoy trabajando es un tutorial muy simple de cómo utilizar las diferentes clases de XNA en ejemplos sencillos. Tengo la introducción esquematizada y hecha pero me gustaría que alguien que entienda un poco más me la corrigiera (que esto es un club y hay confianza), en especial si he metido la zarpa explicando qué es realmente XNA. No pretendo usar tecnicismos raros, pero me gustaría ser exacto al definirlo. ¿Es un conjunto de clases? ¿Es una capa .NET para DirectX? ¿Qué es?

Aquí tenéis los archivos. Espero comentarios pronto.
Proyecto 1: Librería MyXNA (próximamente XNAClub)
Proyecto 2: Tutorial XNAClub (Capítulo 00-Introducción)

Por último quiero dar la bienvenida al club a Miguel Llopis, del DotNetClub de Alicante, que a partir del momento en que acepte la invitación de unirse al club pasará a poder introducir también sus comentarios.

Isaac Llopis

No hay comentarios: