Página 1 de 5 123 ... ÚltimoÚltimo
Resultados 1 al 15 de 62

Tema: Proyecto fin de carrera xna

  1. #1
    Fecha de ingreso
    Dec 2005
    Mensajes
    1,813

    Proyecto fin de carrera xna

    Hola a todos, primero decir que este tema no sé muy bien donde ponerlo: es un trabajo en proceso, pero no de modelado, ni animación, podría ponerlo en videojuegos, pero no es un videojuego exactamente, es más bien una aplicación.

    Me explico mejor: hace un tiempo dejé el proyecto fin de Carrera (curro + proyecto de = aburrimiento y fracaso) así que, me he decidido a empezar otro en algo más divertido.

    Se trata de programar una aplicación en XNA (entorno de desarrollo en c# para programar en DirectX (http://es.wikipedia.org/wiki/microsoft_xna)), en la cual cargaré una escena creada en 3d Studio Max (una habitación) y la cual podré recorrer con el mando de la Wii conectado a mi ordenador.

    Dado que mucha gente hace la típica pregunta quiero hacer un juego ¿cómo se hace? He pensado que está podría ser una buena oportunidad para que la gente se inicie en la programación de juegos o aplicaciones 3d.

    Espero que a la gente le interese y poder así ir explicando los pasos que voy dando (creación de cámaras, carga de escenas, iluminación, etc.)
    Edito: se me olvidaba comentar que también se pueden programar juegos y aplicaciones para la Xbox 360. Un saludo a todos.
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: xna.jpg 
Visitas: 1930 
Tamaño: 21.1 KB 
ID: 124567  
    Última edición por kiko_L; 01-03-2010 a las 18:14

  2. #2
    Fecha de ingreso
    Mar 2009
    Mensajes
    568

    Proyecto fin de carrera xna

    Adelante te sigo.

  3. #3
    Fecha de ingreso
    Jan 2008
    Mensajes
    347

    Proyecto fin de carrera xna

    Yo también me apunto a seguir el hilo que seguro que hay muchas cosas interesantes que, aprender. Coño y además de Pamplona, eso hay que verlo.
    Última edición por Rompecabezas; 01-03-2010 a las 20:26

  4. #4
    Fecha de ingreso
    Dec 2005
    Mensajes
    1,813

    Proyecto fin de carrera xna

    Gracias a los dos. Aún no sé muy bien como enfocarlo. No sé si ir poniendo avances que consiga o hacer un minitutorial, o una mezcla de las dos. Aún estoy verde porque estoy aprendiendo, pero creo que no es mala idea ir poniendo aquí lo que voy aprendiendo a modo de repaso. Saludos.

  5. #5
    Fecha de ingreso
    Jun 2008
    Mensajes
    518

    Proyecto fin de carrera xna

    Yo iría subiendo avances explicándolos y resolviendo las dudas. Seguiré el hilo, me parece muy interesante el tema de XNA, pues tengo un manual, pero no me decido a empezarlo, porque no se c#.

    Pero algún día lo empezaré (por algo me gaste los 30 euros).

    Lo que me ha llamado la atención es lo del mando de la Wii, como lo piensas hacer? Me parece muy interesante.

  6. #6
    Fecha de ingreso
    Jan 2008
    Mensajes
    3,276

    Proyecto fin de carrera xna

    Suerte, tienes al público expectante.
    -
    Efecto mariposa. Nombre técnico: dependencia sensitiva de las condiciones iniciales.

    Por un clavo, se perdió la herradura;
    Por una herradura, se perdió un caballo;
    Por un caballo, se perdió un jinete;
    Por un jinete, se perdió la batalla;
    Por una batalla, se perdió el reino.

    Flickr

  7. #7
    Fecha de ingreso
    Dec 2005
    Mensajes
    1,813

    Proyecto fin de carrera xna

    Yo iría subiendo avances explicándolos y resolviendo las dudas. Seguiré el hilo, me parece muy interesante el tema de XNA, pues tengo un manual, pero no me decido a empezarlo, porque no se c#.

    Pero algún día lo empezaré (por algo me gaste los 30 euros).

    Lo que me ha llamado la atención es lo del mando de la Wii, como lo piensas hacer? Me parece muy interesante.
    Existe una librería preparada para usar el mando de la Wii, y lo primero que hice fue cerciorarme que era compatible con XNA. He visto que hay algún ejemplo hecho por la red, aunque la verdad que no son muchos. Estoy esperando a que me llegue un conector bluetooth que compré para empezar a probar.

    Mañana espero poner un poco de teoría básica de cómo es un programa sencillo en XNA. Saludos y gracias.

  8. #8
    Fecha de ingreso
    Dec 2005
    Mensajes
    1,813

    Proyecto fin de carrera xna

    Bueno venga, voy a empezar con lo básico, los requisitos:
    * visual c# express edition (gratuito con un simple registro): http://www.Microsoft.com/express/dow...2008-visual-cs (si tenéis la versión profesional perfecto, pero con la express funciona perfectamente).
    * XNA game Studio 3.1 (también gratuito): http://www.Microsoft.com/downloads/d...displaylang=en.

    Simplemente con estos dos instaladores tendríamos todo lo necesario para empezar a hacer nuestros juegos.

    Os pongo también unos enlaces de interés:
    * desarrollo dirigido a Xbox 360: http://www.xbox.com/en-us/dev/regdev.htm.
    * comunidad XNA: http://creators.XNA.com/en-us/.
    * blog sobre XNA: http://aprendiendoxna.wordpress.com/.

    Libro sobre XNA:
    * learning XNA 3.0 (oreilly) :http://oreilly.com/catalog/9780596521967 (lo estoy leyendo y es muy interesante).

  9. #9
    Fecha de ingreso
    Dec 2005
    Mensajes
    1,813

    Proyecto fin de carrera xna

    Lección 1 tSi no se tienen nociones de programación es mejor comenzar con lo básico. Aquí voy a dar por sabidas muchas cosas en cuestión de programación, como, por ejemplo, qué es una clase, herencia, qué es un método, paso de parámetros, etc.

    Vamos a crear nuestra primera aplicación XNA (un juego, aunque no tenga nada). Para ello iniciamos Visual Studio y creamos un nuevo proyecto tipo Windows game (Como se muestra en la primera imagen). Le ponemos el nombre que queramos.

    Vamos a ver qué pasa cuando compilamos el programa (Build--> Generar Solución o Ctrl+Shift+B) y lo ejecutamos (Debug--> Iniciar Depuracción o F5). (Se adjuntan dos imágenes).

    Lo que obtenemos lo vemos en la 4ª imagen. Es una simple pantalla azul, pero en esencia eso es nuestro primer juego en XNA.

    Mañana explicaré la estructura básica del programa (que al final siempre es la misma). Un saludo.
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: Leccion1_1.jpg 
Visitas: 336 
Tamaño: 208.2 KB 
ID: 124591   Clic en la imagen para ver su versión completa. 

Nombre: Leccion1_2.jpg 
Visitas: 329 
Tamaño: 204.2 KB 
ID: 124592   Clic en la imagen para ver su versión completa. 

Nombre: Leccion1_3.jpg 
Visitas: 265 
Tamaño: 117.1 KB 
ID: 124593   Clic en la imagen para ver su versión completa. 

Nombre: Leccion1_4.jpg 
Visitas: 352 
Tamaño: 262.1 KB 
ID: 124594  


  10. #10
    Fecha de ingreso
    Dec 2005
    Mensajes
    1,813

    Proyecto fin de carrera xna

    Sigamos con las lecciones:
    using system. Using system. Collections. Generic.

    Using system. Linq.

    Using Microsoft.XNA. Framework.

    Using Microsoft.XNA. Framework. Audio.

    Using Microsoft.XNA. Framework. Content.

    Using Microsoft.XNA. Framework. Gamerservices.

    Using Microsoft.XNA. Framework. Graphics.

    Using Microsoft.XNA. Framework. Input.

    Using Microsoft.XNA. Framework. Media.

    Using Microsoft.XNA. Framework. Net.

    Using Microsoft.XNA. Framework. Storage.

    Namespace miprimerprogramaxna.
    {.
    /// <summary>.
    /// this is the main type for your game.
    /// </summary>.

    Public class game1 : Microsoft.XNA. Framework. Game.
    {.

    Graphicsdevicemanager graphics.

    Spritebatch spritebatch.

    Public game1().
    {.

    Graphics = new graphicsdevicemanager(this).

    Content. Rotdirectory = content.
    }.
    /// <summary>.
    /// allows the game todo Perform any initialization it neds todo before starting todo run.
    /// this is where it can query for any required services and load any non-graphic.
    /// related content. Calling base. Initialize Will enumerate th rouge any components.
    /// and initialize them as well.
    /// </summary>.

    Protected override Void initialize ().
    {.
    // todo: add your initialization logic here.

    Base. Initialize ().
    }.
    /// <summary>.
    /// loadcontent Will be called once per game and is the place todo load.
    /// all of your content.
    /// </summary>.

    Protected override Void loadcontent().
    {.
    // create a new spritebatch, which can be used todo draw textures.

    Spritebatch = new spritebatch(graphicsdevice).
    // todo: use this. Content todo load your game content here.
    }.
    /// <summary>.
    /// unloadcontent Will be called once per game and is the place todo unload.
    /// all content.
    /// </summary>.

    Protected override Void unloadcontent().
    {.
    // todo: unload any non contentmanager content here.
    }.
    /// <summary>.
    /// allows the game todo run logic such as updating the world.
    /// checking for Collisions, Gathering input, and playing audio.
    /// </summary>.
    /// <param name=gametime>provides a snapshot of timing values.</param>.

    Protected override Void update (gametime gametime).
    {.
    // allows the game todo exit.

    If (gamepad. Getstate (playerindex. One). Buttons. Bak == buttonstate. Pressed).

    This. Exit().
    // todo: add your update logic here.

    Base. Update (gametime).
    }.
    /// <summary>.
    /// this is called when the game should draw itself.
    /// </summary>.
    /// <param name=gametime>provides a snapshot of timing values.</param>.

    Protected override Void draw(gametime gametime).
    {.

    Graphicsdevice. Clear(color. Cornflowerblue).
    // todo: add your drawing code here.

    Base. Draw(gametime).
    }.
    }.
    }
    .

    Nuestra clase principal tendrá esta forma. En ella se disitinguen varios elementos clave:
    Variables:
    * graphicsdevicemanager graphics: este objeto representa el dispositivo gráfico actual de nuestro ordenador. Se podría decir que va a hacer de puente entre nuestra aplicación y la GPU de nuestra tarjeta gráfica. Es vital por todo lo que hagamos en nuestra pantalla va a pasar por este objeto.
    * spritebatch spritebatch: este objeto lo usaremos a la hora de dibujar un sprite (se considera sprite a cualquier imagen 2d o 3d integrado en una escena. Un juego en 2d, por ejemplo, se hará mediante la inclusión de varios sprites (enemigos, fondos, etc.)).

    Métodos:
    * initialize (): en este método podremos inicializar cualquier variable que utilicemos en nuestro programa.
    * loadcontent(): se utiliza para cargar el contenido que vayamos a utilizar en nuestro programa (texturas, objetos 3d, etc).
    * unloadcontent(): tiene el efecto contrario. Descargar y liberar todos los recursos obtenidos por el programa.
    * update (gametime gametime): este método es uno de los más importantes, en el definiremos que queremos que pase cuando se actualice el estado de ciertas variables. Por ejemplo, si queremos implementar una cámara que cuando pulsemos la tecla w se mueva hacia adelante, tendremos que definir en el método update dicha transformación (cómo cambia la cámara para que se mueva).

    Vemos que en nuestro ejemplo el programa comprueba en dicho método si el pad de la Xbox está conectado y a continuación vuelve a llamarse a sí mismo (con esto concluimos que el programa no es otra cosa que un bucle infinito que espera a que se produzcan eventos como una tecla pulsada para cambiar su estado).

    Se observa también que existe una variable llamada gametime ¿Qué hace esta variable? Pues nos indica el tiempo que ha pasado desde que ha comenzado a ejecutarse el programa ¿y para qué? Para determinar cuando deben pasar las animaciones, etc ya que los ordenadores no siempre tienen la misma velocidad y aplicaciones que en un ordenador van bien en otros podrían ir muy rápido o muy despacio.
    * draw(gametime gametime): este es el método que se va a encargar de dibujar nuestros objetos en la pantalla.

    Siempre se suele intentar que el método draw sea únicamente el que cargue los objetos, texturas, y que la lógica del programa ocurra en los métodos update de las diferentes clases. Y aquí llegamos a otro punto:
    ¿Cuántos métodos update se tienen?
    Pues pueden ser muchos, uno por clase que creemos. En ocasiones necesitaremos que hagan algo, en otras no. Todo depende de cómo organicemos nuestro código. Veremos esto más adelante.

  11. #11
    Fecha de ingreso
    Dec 2005
    Mensajes
    1,813

    Proyecto fin de carrera xna

    Os pongo una captura de pantalla de un juego programado en XNA (y descargable desde aquí http://exdream.com/xnaracinggame/). El juego es totalmente configurable (conocimientos de XNA) para añadir lo que deseemos (coches nuevos, texturas diferentes, niveles, etc).

    Como veis la potencia de XNA es mucha, toda la que vuestro conocimiento os vaya dando. Las posibilidades son infinitas (Shaders, física, colisiones, etc.
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: racing_game_full.jpg 
Visitas: 3003 
Tamaño: 187.8 KB 
ID: 124652   Clic en la imagen para ver su versión completa. 

Nombre: XNARacer.jpg 
Visitas: 1749 
Tamaño: 161.3 KB 
ID: 124653  

  12. #12
    Fecha de ingreso
    Dec 2005
    Mensajes
    1,813

    Proyecto fin de carrera xna

    Y por último hoy, os dejo un video de una aplicación que hice la semana pasada. Simplemente es la carga de un objeto 3d que hice con 3d Studio Max (y colgué por aquí hace cosa de año y pico) y una cámara libre con la que movernos por la escena.

    Espero que el video se vea bien, si no se ve lo cambio.
    Archivos adjuntados Archivos adjuntados

  13. #13
    Fecha de ingreso
    Sep 2007
    Mensajes
    942

    Proyecto fin de carrera xna

    Parece interesante el proyecto. Le tendré reservado un ojo.

  14. #14
    Fecha de ingreso
    Feb 2006
    Mensajes
    370

    Proyecto fin de carrera xna

    Me parece un tema cojo, apasionante, buen hilo. Estaré atento, aunque por lo poco que he leído veo que esto de la programación se me queda un poco grande (o eso, o es pereza que no sé qué es peor). Pero voy a seguir el hilo con mucho interés, a ver si consigo hacer algo fuera del agro3d.

    Mis felicitaciones, es un gran hilo. Un saludo.

    Posdata: van 5 estrellas.
    "Caga mas un buey que cien golondrinas..."

    (refrán aragones)
    www.bntestudio.es

  15. #15
    Fecha de ingreso
    Oct 2009
    Mensajes
    214

    Proyecto fin de carrera xna

    Muy interesante, estaré pendiente de esto, aunque como dicen por ahí esto de la programación me queda un poco grande (o eso, o es pereza que no sé qué es peor. Saludos, excelente hilo.

Página 1 de 5 123 ... ÚltimoÚltimo

Temas similares

  1. Proyecto de último año de carrera
    Por Furan en el foro Videojuegos
    Respuestas: 9
    : 03-12-2019, 18:06
  2. Proyecto fin de carrera
    Por Jimmy78 en el foro Quieres presentarte
    Respuestas: 3
    : 31-12-2008, 03:31
  3. Proyecto fin de carrera II
    Por anatole en el foro Trabajos Finalizados
    Respuestas: 6
    : 20-09-2008, 11:16
  4. Proyecto fin de carrera
    Por anatole en el foro Trabajos Finalizados
    Respuestas: 8
    : 12-09-2008, 10:27
  5. Proyecto final de carrera
    Por trombone_cot en el foro Oferta y demanda profesional
    Respuestas: 1
    : 25-04-2007, 21:02