Gracias Gracias:  11
Página 1 de 5 12345 ÚltimoÚltimo
Resultados 1 al 15 de 62

Tema: Proyecto fin de carrera XNa

  1. #1
    Relojero 3D Avatar de kiko_L
    Fecha de ingreso
    Dec 2005
    Ubicación
    Pamplona
    Mensajes
    1,819

    Proyecto fin de carrera. XNA

    Hola a todos, primero decir que este tema no se muy bien donde ponerlo: Es un trabajo en proceso pero no de modelado, ni animación, etc, 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 mierda = 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 esta 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 adjuntadas Miniaturas adjuntadas Proyecto fin de carrera  XNa-xna.jpg  
    Última edición por kiko_L; 01-03-2010 a las 20:14

  2. #2
    Abe Avatar de a caramecha
    Fecha de ingreso
    Mar 2009
    Ubicación
    Vigo
    Mensajes
    551

    Respuesta: Proyecto fin de carrera. XNA

    Adelante te sigo XD

  3. #3
    My Member
    Fecha de ingreso
    Jan 2008
    Ubicación
    Pamplona
    Mensajes
    348

    Respuesta: 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 22:26

  4. #4
    Relojero 3D Avatar de kiko_L
    Fecha de ingreso
    Dec 2005
    Ubicación
    Pamplona
    Mensajes
    1,819

    Respuesta: Proyecto fin de carrera. XNA

    Gracias a los dos. Aun no se muy bien como enfocarlo. No se si ir poniendo avances que consiga o hacer un minitutorial....o una mezcla de las dos. Aun 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
    Senior Member Avatar de Sadyk
    Fecha de ingreso
    Jun 2008
    Ubicación
    madrid
    Mensajes
    517

    Respuesta: Proyecto fin de carrera. XNA

    yo iria subiendo avances explicandolos y resolviendo las dudas
    seguire 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é XD (por algo me gaste los 30 euros)
    lo que ma ha llamado la atención es lo del mando de la wii, como lo piensas hacer? me parece muy interesante
    DICEN que tras la muerte está la vida eterna. Yo prefiero ensañarme con el cuerpo.

  6. #6
    That's moronic Avatar de Hulkong
    Fecha de ingreso
    Jan 2008
    Ubicación
    Madrid
    Mensajes
    3,313

    Respuesta: 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
    Relojero 3D Avatar de kiko_L
    Fecha de ingreso
    Dec 2005
    Ubicación
    Pamplona
    Mensajes
    1,819

    Respuesta: Proyecto fin de carrera. XNA

    Cita Iniciado por Sadyk Ver mensaje
    yo iria subiendo avances explicandolos y resolviendo las dudas
    seguire 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é XD (por algo me gaste los 30 euros)
    lo que ma 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 como es un programa sencillo en XNA.

    Saludos y gracias!

  8. #8
    Relojero 3D Avatar de kiko_L
    Fecha de ingreso
    Dec 2005
    Ubicación
    Pamplona
    Mensajes
    1,819

    Respuesta: 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 pro 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 jueguitos.

    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 (O'reilly) :http://oreilly.com/catalog/9780596521967 (Lo estoy leyendo y es muy interesante)

  9. #9
    Relojero 3D Avatar de kiko_L
    Fecha de ingreso
    Dec 2005
    Ubicación
    Pamplona
    Mensajes
    1,819

    Respuesta: Proyecto fin de carrera. XNA

    Lección 1

    Si 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 que pasa cuando compilamos el programa (Build--> Generar Solución ó Ctrl+Shift+B) y lo ejecutamos (Debug--> Iniciar Depuración ó 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 adjuntadas Miniaturas adjuntadas Proyecto fin de carrera  XNa-leccion1_1.jpg   Proyecto fin de carrera  XNa-leccion1_2.jpg   Proyecto fin de carrera  XNa-leccion1_3.jpg   Proyecto fin de carrera  XNa-leccion1_4.jpg  


  10. #10
    Relojero 3D Avatar de kiko_L
    Fecha de ingreso
    Dec 2005
    Ubicación
    Pamplona
    Mensajes
    1,819

    Respuesta: 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.RootDirectory = "Content";
    }

    /// <summary>
    /// Allows the game to perform any initialization it needs to before starting to run.
    /// This is where it can query for any required services and load any non-graphic
    /// related content. Calling base.Initialize will enumerate through 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 to load
    /// all of your content.
    /// </summary>
    protected override void LoadContent()
    {
    // Create a new SpriteBatch, which can be used to draw textures.
    spriteBatch = new SpriteBatch(GraphicsDevice);

    // TODO: use this.Content to load your game content here
    }

    /// <summary>
    /// UnloadContent will be called once per game and is the place to unload
    /// all content.
    /// </summary>
    protected override void UnloadContent()
    {
    // TODO: Unload any non ContentManager content here
    }

    /// <summary>
    /// Allows the game to 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 to 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 él 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 esta 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, etc. y que la lógica del programa ocurra en los métodos Update de las diferentes clases. Y aquí llegamos a otro punto:

    ¿Cuantos 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 como organicemos nuestro código. Veremos esto más adelante

  11. #11
    Relojero 3D Avatar de kiko_L
    Fecha de ingreso
    Dec 2005
    Ubicación
    Pamplona
    Mensajes
    1,819

    Respuesta: 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 (con 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 adjuntadas Miniaturas adjuntadas Proyecto fin de carrera  XNa-racing_game_full.jpg   Proyecto fin de carrera  XNa-xnaracer.jpg  

  12. #12
    Relojero 3D Avatar de kiko_L
    Fecha de ingreso
    Dec 2005
    Ubicación
    Pamplona
    Mensajes
    1,819

    Respuesta: Proyecto fin de carrera. XNA

    Y por último hoy, os dejo un video de una pequeña 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
    Estudiante Avatar de krateos_29
    Fecha de ingreso
    Sep 2007
    Mensajes
    943

    Respuesta: Proyecto fin de carrera. XNA

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

  14. #14
    GañaaaannNN!!!!!! Avatar de wurthkiller
    Fecha de ingreso
    Feb 2006
    Ubicación
    Zaragoza-España
    Mensajes
    367

    Respuesta: 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 se que 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.

    P.D. Van 5 estrellicas
    "Caga mas un buey que cien golondrinas..."

    (refrán aragones)
    www.bntestudio.es

  15. #15
    Senior Member Avatar de emguepo
    Fecha de ingreso
    Oct 2009
    Ubicación
    Cartagena, Colombia
    Mensajes
    205

    Respuesta: 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 se que es peor...)"

    saludos, excelente hilo,

Página 1 de 5 12345 ÚltimoÚltimo

Temas similares

  1. Proyecto Fin de Carrera
    Por Jimmy78 en el foro Quien eres tu - Aqui puedes presentarte
    Respuestas: 3
    Último mensaje: 31-12-2008, 05:31
  2. proyecto fin de carrera II
    Por anatole en el foro Trabajos Finalizados
    Respuestas: 6
    Último mensaje: 20-09-2008, 12:16
  3. proyecto fin de carrera
    Por anatole en el foro Trabajos Finalizados
    Respuestas: 8
    Último mensaje: 12-09-2008, 11:27
  4. Proyecto final de carrera
    Por trombone_cot en el foro Colaboraciones e Iniciativas
    Respuestas: 1
    Último mensaje: 25-04-2007, 22:02
  5. Mi Proyecto Final de Carrera
    Por Art3D en el foro Infografía General
    Respuestas: 31
    Último mensaje: 11-04-2007, 20:22

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •