PDGames

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Forum destinado a todos os Alunos que estão cursando Projeto e Design de Games (PDG) no Colegio Politecnico Bento Quirino


2 participantes

    [Tuto @ XNA]O básico...

    Tonon
    Tonon


    Mensagens : 2
    Data de inscrição : 19/05/2010
    Idade : 29

    [Tuto @ XNA]O básico... Empty [Tuto @ XNA]O básico...

    Mensagem por Tonon Sáb maio 22, 2010 12:14 am

    Aqui quem fala é o Tonon do primeiro games... Com a data para primeira apresentação do jogo da Tati chegando, agilizar um tutorial básico sobre a plataforma XNA pode ajudar quem não quer usar o RPGMaker ou outro maker de jogo pronto(desse jeito os jogos não ficam todos parecidos).

    O TUTORIAL NÃO ESTÁ COMPLETO, VOU ADICIONAR ALGUNS MÓDULOS AOS POUCOS.
    ALGUMAS PALAVRAS VÃO APARECER EM INGLÊS.
    NÃO SE PRENDA A ESTE TUTORIAL, SE QUER MESMO FAZER O TRABALHO USANDO XNA, PROCURE NA INTERNET POR ALGUNS TUTORIAIS, O PRÓPRIO SITE DA MICROSOFT TEM UM FÓRUM SOBRE ISSO.

    1. A plataforma.
    O XNA foi desenvolvido com o intuito de proporcionar a desenvolvedores indie(independentes) a capacidade de criar jogos para Xbox 360 e Windows via Direct3D/X. É uma ferramenta gratuita e pode ser baixada no site da Microsoft.

    2. A primeira janela...
    Eu tentei fazer isso usando o camstudio... Mas ele não foi com a minha cara, então não consegui um vídeo pra colocar aqui...
    Depois de ter baixado tudo lá no site da Microsoft(Visual C#2008 Express Edition e o XNA v3.1) e ter os programas instalados, você abre o Visual C#(Que deve estar no seu desktop) e:
    1. Vai até o menu File > New Project(ou usa o atalho Ctrl + Shift + N);
    2. Seleciona o XNA Game Studio 3.0;
    3. Seleciona Windows Game(3.0);
    4. Clique em Ok(Você pode modificar o nome do programa, mas para esse tutorial vamos deixa-lo como WindowsGame1 mesmo).
    Agora você deve conseguir ver à sua direita, o Menu Solution Explorer e ao centro, texto e códigos.
    Aperte a tecla F5 e o "jogo" deverá rodar sem nenhum erro...

    3. Adicionando Conteúdo.
    Em Solution Explorer, podemos ver que a pasta content está vazia(contém apenas as referencias). Para adicionar conteúdo, devemos clicar em Content com o botão direito e selecionar o Menu Add > New Folder. O nome da pasta deve ser Conteudo(Sem o acento).
    Agora clique com o botão direito na pasta e selecione Add > Existing Item e depois selecione a imagem. Você deve copiar as imagens que vai usar para Meus Documentos/Visual Studio 2008/Projects/WindowsGame1/Content/conteudo(Ou o equivalente no seu sistema).

    4. Adicionando a imagem ao seu "jogo".
    Se você apertar F5, verá que nada acontece, o jogo continua sem nada na tela... Então devemos usar alguns comandos para fazer a imagem aparecer na tela. Lembre-se de não apagar nada do Game1.cs, O código que já vem nele é necessário para fazer o jogo rodar...
    1. Mova um Sprite(imagem .jpg ou .png) para a pasta de conteudo e insira ele no jogo(usando o que ensinei no módulo 3), lembre-se de usar um nome que lembre o que ele é.
    2 Procure por SpriteBatch SpriteBatch; e logo abaixo dele adicione
    Código:
    Vector2 mPosition = new Vector2(0, 0);
    Texture2D mSpriteTexture;
    Esse código serve para dizer aonde o Sprite deve ser inserido, sempre usando o padrão (x, y). A segunda linha, serve para criar uma variável de nome mSpriteTexture para armazenar um sprite em 2D;
    3. Agora procure pelo method(Normalmente começam com
    Código:
    protected override void
    LoadContent(). Você vai adicionar o código para que ele fique assim
    Código:
    protected override void LoadContent()
    {
    SpriteBatch new = SpriteBatch(GraphicsDevice);
    mSpriteTexture = this.content.load<Texture2D>("conteudo/Nome_do_sprite");
    }
    4. Vamos adicionar o seguinte código para o method Draw
    Código:
    protected override void Draw(GameTime gameTime)
    .
    Código:
    graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
    spriteBatch.Begin();
    spriteBatch.Draw(mSpriteTexture, mPosition, Color.White);
    spriteBatch.End();
    base.Draw(gameTime);
    . Este código faz o sprite armazenado em mSpriteTexture aparecer na posição mPosition; Se você apertar F5 agora, verá que sua sprite aparece desenhada na janela do jogo.
    Você pode mudar a posição do sprite mudando os valores de x e y da variável Vector2;
    4. Agora criaremos uma nova classe... Clique com o botão direito em WindowsGame1(Lá no content Explorer) e Selecione Add > New Item, Agora escolha Visual C# e depois procure pelo item Class(Provavelmente o terceiro da fileira da direita), Selecione ele, mude o nome para Sprite e clique em Add;
    5. A tela de código agora serve para a Sprite.cs;
    6. Nela, vamos adicionar os seguintes Statements
    Código:
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Content;
    using Microsoft.Xna.Framework.Graphics;
    Adicione isso logo depois dos States já existentes(O último deve ser (Using System.Text;)
    7. Na mesma class, mude o código para
    Código:
    class Sprite
    {
    public Vector2 Position = new Vector2(0,0);
    private Texture2D mSpriteTexture;
    }
    Ou simplesmente adicione
    Código:
    public Vector2 Position = new Vector2(0,0);
    private Texture2D mSpriteTexture;
    entre os colchetes da classe Sprite...
    8. Em Sprite.cs vamos criar um argumento para que possamos armazenar mais de 2 sprites... Então crie um Method para o ContentManager;
    Código:
    public void LoadContent(ContentManager theContentManager, string theAssetName)
    {
    mSpriteTexture = theContentManager.Load<Texture2D>(theAssetName);
    }
    9. Adicione também o código para Draw
    Código:
    public void Draw(SpriteBatch theSpriteBatch)
    {
    theSpriteBatch.Draw(mSpriteTexture, Position, Color.White);
    }
    10. Agora, Quem vai se encarregar de carregar as sprites é a classe que criamos. Para isso, precisamos mudar o seguinte em Game1.cs:
    1. Adicione
    Código:
    Sprite mSprite;
    logo abaixo de
    Código:
    Texture2D mSpriteTexture;
    2. Em
    Código:
    protected override void Initialize();
    Adicione
    Código:
    mSprite = Sprite();
    3. Mude
    Código:
    LoadContent();
    para
    Código:
    protected override void LoadContent()
    {
    spriteBatch = new SpriteBatch(GraphicsDevice);
    mSprite.LoadContent(this.Content, "conteudo/Nome_do_Sprite");
    }
    Agora nosso Sprite é carregado usando Sprite.cs e não direto pela class principal do jogo.
    4. Altere
    Código:
    protected override void Draw(GameTime gameTime)
    para que ele fique assim
    Código:
    protected override void Draw(GameTime gameTime)
    {
    graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
    spriteBatch.Begin();
    mSprite.Draw(this.spriteBatch);
    spriteBatch.End();
    base.Draw(gameTime);
    }
    Aperte F5 e nossa Sprite aparecerá no topo da tela.
    11. Para desenhar mais de 1 Sprite na tela crie uma variável para ele(pode ser mSpriteTwo), No method
    Código:
    Initialize()
    de Game1.cs; Adicione
    Código:
    mSpriteTwo = newSprite();
    . Em
    Código:
    LoadContent
    Adicione
    Código:
    mSpriteTwo.LoadContent(this.Content, "SquareGuy");
    . Adicione também
    Código:
    mSpriteTwo.Position = new Vector2( 300, 100);
    para dar a posição de sua nova sprite. Por fim, adicione
    Código:
    mSpriteTwo.Draw(this.spriteBatch);
    em
    Código:
    Draw();
    .

    Eu sei que isso aí é quase nada perto de um jogo... Mas se são 6 e 10 agora, estou escrevendo isso à pelomenos 5h(desde que cheguei em casa)... Como já disse, isso não é tudo e vou adicionar algumas coisas mais pra frente(MODs, por favor, não desabilitem o Edit para o post).
    É fácil encontrar material sobre XNA na internet, procurem...
    Críticas construtivas são bem vindas, qualquer duvida retire aqui mesmo no post...
    NÃO DEPENDAM DE MIM, TAMBÉM TENHO MEU TRABALHO PARA CONCLUIR.
    Gary
    Gary


    Mensagens : 5
    Data de inscrição : 14/05/2010

    [Tuto @ XNA]O básico... Empty Re: [Tuto @ XNA]O básico...

    Mensagem por Gary Sáb maio 22, 2010 4:15 pm

    Mtu bom vai ajuda sim to saindo de viagen agora e to meio q sem tempo de ler...
    assim que chegar no hotel eu leio to levando meu note na bolsa pode dexa vo complementa meu post ...
    duvida control c control v foi grande ?? Wink
    te mais Razz
    Tonon
    Tonon


    Mensagens : 2
    Data de inscrição : 19/05/2010
    Idade : 29

    [Tuto @ XNA]O básico... Empty Re: [Tuto @ XNA]O básico...

    Mensagem por Tonon Sáb maio 22, 2010 10:13 pm

    Gary escreveu:
    duvida control c control v foi grande ?? Wink

    Eu não dei ctrlc ctrlv, por isso mesmo a demora... xP
    Gary
    Gary


    Mensagens : 5
    Data de inscrição : 14/05/2010

    [Tuto @ XNA]O básico... Empty Re: [Tuto @ XNA]O básico...

    Mensagem por Gary Dom maio 23, 2010 3:17 am

    poxaaaa
    ta bem adiantado heim !!!
    eu do segundo ano n manjei mtu nao !

    Conteúdo patrocinado


    [Tuto @ XNA]O básico... Empty Re: [Tuto @ XNA]O básico...

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg maio 06, 2024 7:16 pm