xna

No seguimento dos posts anteriores sobre a Minhas experiências com XNA Game Studio 4.0 venho hoje mostrar os meus avanços no que toca a programação usando esta framework e a linguagem de programação C#.

Em qualquer jogo tem que haver uma forma de input de dados de modo a o utilizador poder interagir com o jogo, e geralmente isso é feito através do rato e do teclado, sendo estes utilizados para movimentar o objecto dentro do jogo.

o código que usei nesta experiência foi:

Program.cs

using System;
 
namespace First_Move
{
#if WINDOWS || XBOX
    static class Program
    {
        static void Main(string[] args)
        {
            using (Game1 game = new Game1())
            {
                game.Run();
            }
        }
    }
#endif
}

Game1.cs

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;
 
namespace First_Move
{
 
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        // Textura que vai ser desenhada na ecrã
        Texture2D Bot;
        // Posicao da textura na tela. x = 100, y = 100
        Vector2 position = new Vector2(100, 100);
        // Teclado a ser usado
        KeyboardState keysboardState;
        // A velocidade do movimento da textura
        float speed = 5.0f;
 
        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }
 
        protected override void Initialize()
        {
            base.Initialize();
        }
 
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);
 
            // Carregar a textura do Bot .PNG
            Bot = Content.Load("Idle");
        }
 
        protected override void UnloadContent()
        {
 
        }
 
        protected override void Update(GameTime gameTime)
        {
            // Declaramos o teclado
            keysboardState = Keyboard.GetState();
            // Tecla para cima
            if (keysboardState.IsKeyDown(Keys.Up))
            {
                position.Y -= speed;
            }
            // Tecla para baixo
            if (keysboardState.IsKeyDown(Keys.Down))
            {
                position.Y += speed;
            }
            // Tecla para esquerda
            if (keysboardState.IsKeyDown(Keys.Left))
            {
                position.X -= speed;
            }
            // Tecla para direita
            if (keysboardState.IsKeyDown(Keys.Right))
            {
                position.X += speed;
            }
 
            base.Update(gameTime);
        }
 
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
 
            GraphicsDevice.Clear(Color.CornflowerBlue);
            spriteBatch.Begin();
            spriteBatch.Draw(Bot, position, Color.White);
            spriteBatch.End();
            base.Draw(gameTime);
 
            base.Draw(gameTime);
        }
    }
}

É de salientar que é necessário carregar a imagem para para o Content() previamente de modo a que esta possa ser apresentada no ecrã.

Apesar de esta experiência ainda ser muito básica e rudimentar já me está a aguçar a curiosidade sobre a plataforma.

O próximo passo é delimitar as extremidades do ecrã para que o pequeno boneco não ultrapasse esses limites e deixe de ser visível.

Related Posts Plugin for WordPress, Blogger...Share

Leave a Reply