Esto es cosa de buscar en San google y encontrar, no pensaba hacer el hola mundo en xna pero me acorde que una vez hize un hola mundo en java y que se movia , bueno eso ya resulta mas atractivo je, esto a primeras es un asunto deprimente ,porque lo digo , porque te dices a ti mismo :hice esto ,para esto no mas, pero bueno a medidas que vayas practicando te daras cuenta que haces cosas mas complejas y mas entretenidas.
Empezemos…
Una ves que tienen todo instalado podemos proseguir , acuerdense del link de todo lo que le deje en un articulo anterior q les deje.
Instalacion
Les dejo el Link de mi compañero ahi esta mas claro que el agua de todos los primeros pasos para la generacion de un proyecto. Proyecto XNA
Y ahora les dejo el source.
using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Net; /* Bueno para los que no saben y tan recien aprendiendo, using es importar una libreria en nuestro codigo , es como decir: oye emprestame esto que lo voy a necesitar, Se lo solicitamos al framework, el framework es el marco de trabajo que nos entrega variadas funcionalidades*/ /*****Microsoft.Xna.Framework***** Ofrece clases de juego común que se necesita, como temporizadores y los bucles del juego. ****Microsoft.Xna.Framework.Audio*** Contiene bajo nivel de interfaz de programación de aplicaciones (API) de los métodos que pueden cargar y manipular XACT-proyecto creado y los archivos de contenido para reproducir audio. ****Microsoft.Xna.Framework.Graphics***** Contiene bajo nivel de interfaz de programación de aplicaciones (API) de los métodos que aprovechan las capacidades de aceleración de hardware para mostrar objetos 3D. ***Microsoft.Xna.Framework.Input***** Contiene las clases para recibir el aporte de teclado, el ratón y dispositivos de Xbox 360 Controller. ***Microsoft.Xna.Framework.Net**** Contiene clases que implementan el apoyo a Xbox LIVE, multijugador, y la creación de redes para el Marco de juegos XNA. ***Microsoft.Xna.Framework.Storage*** Contiene clases que permiten la lectura y escritura de archivos. **/ namespace Hola_mundo_X_Y { /*La palabra clave namespace se utiliza para declarar un ámbito. Este ámbito permite organizar el código y proporciona una forma de crear tipos globalmente únicos.*/ public class Game1 : Microsoft.Xna.Framework.Game { // Esta es la clase base del juego GraphicsDeviceManager graphics; //Con este objeto administras los dispositivos graficos SpriteBatch spriteBatch; /* Permite a un grupo de sprites que se expedirá con la misma configuración. Namespace: Microsoft.Xna.Framework.Graphics Assembly: Microsoft.Xna.Framework (en microsoft.xna.framework.dll)*/ Vector2 posicionPalabra; /*Define un vector con dos componentes; X-Componente e Y-Componente. Namespace: Microsoft.Xna.Framework Assembly: Microsoft.Xna.Framework (en microsoft.xna.framework.dll)*/ SpriteFont arial; //nuestra fuente const int velocidadPalabra = 5; //una variable entera y constante string saludo = "Hola Mundo"; //una variable cadena public Game1() { //inializador de los componentes. graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } protected override void Initialize() { // logica de iniciación //Variables de puntajes y objetos del juego //No inicies nada grafico en este lugar posicionPalabra.X = 50; posicionPalabra.Y = 50; base.Initialize(); } protected override void LoadContent() { // instanciando SpriteBatch, para ya poder // empezar a dibujar. spriteBatch = new SpriteBatch(graphics.GraphicsDevice); arial = Content.Load("arial"); } protected override void UnloadContent() { // Elimina todo contenido q no pertenesca //a ContentManager. } protected override void Update(GameTime gameTime) { KeyboardState keyboard = Keyboard.GetState(); teclado(gameTime); //funcion teclado if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed|| keyboard.IsKeyDown(Keys.Escape)) { // si queremos salir de la ventana con Esc. this.Exit(); } base.Update(gameTime); //Este se llama cuando el juego se Dibuja. } protected void teclado(GameTime gameTime) { // controlador de teclado KeyboardState estadoTeclado = Keyboard.GetState(); // estado de nuetro teclado , //el metodo GetState nos recolecta el estado de //nuestro teclado Keys[] teclapulsada = estadoTeclado.GetPressedKeys(); // todos los eventos de teclado los guardamos en Keys[]. foreach (Keys tecla in teclapulsada) { //repite un grupo de instrucciones incluidas // en el bucle para //cada elemento de una matriz o de un objeto collection // en este caso Keys[]. if (tecla == Keys.Left) { posicionPalabra.X -= velocidadPalabra; //disminiyendo-- } if (tecla == Keys.Right) { posicionPalabra.X += velocidadPalabra; //aumentando++ } if (tecla == Keys.Up) { posicionPalabra.Y -= velocidadPalabra; //disminiyendo-- } if (tecla == Keys.Down) { posicionPalabra.Y += velocidadPalabra; //aumentando++ } if (tecla == Keys.Escape) { this.Exit(); //cierre del programa } } } protected override void Draw(GameTime gameTime) { //Metodo de pintado graphics.GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); spriteBatch.DrawString(arial, saludo+ "("+posicionPalabra.X+" ,"+ posicionPalabra.Y+")", posicionPalabra, Color.Black); spriteBatch.End(); base.Draw(gameTime); } } }
bueno despues de todo este codigo veran algo como esto:
Seguiremos por mas cosas que ver .Les dejo los archivos adjuntos, lo cual para ver este pequeño proyecto, tienen que tener el XNA Games Studio 2.0 Redistributable y XP con sp2( servipack 2) .
aqui los links de descarga.
XNA Games Studio 2.0 Redestributable.
Emmm probe todo esto en el pc de mi hermano , no me ha funkado , bueno lo dejo de tarea para despues, la ideas es hacer un instalador en donde vaya todo empaquetado , si alguien sabe me avisa en un post, pero si tienes todo instalado y lo pruebas con el Visual C# , no tendreis problemas.
Bueno me despido, hasta la proxima , practiquen harto!!! La practica hace al maestro, bytes.
Comentarios recientes