Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Crie seu primeiro projeto XNA 4.0 para Windows Phone 7

Abra o Visual Studio. O processo que faremos agora é similar mesmo em diferentes versões (Express, Professional, Ultimate..)

Clique em New Project e selecione em Installed Templates o item XNA Game Studio 4.0 e em seguida, ao lado direito, clique em Windows Phone Game 4.0


Se você ainda não baixou o Windows, clique aqui e baixe o SDK!

Você irá notar que tanto uma estrutura de pastas como arquivos e trechos de código virão automaticamente no seu projeto. Isso acontece porque estamos utilizando um template, onde o próprio Visual Studio já inclui no início do projeto o que você muito provavelmente fará uso.

Nota, o código gerado é extremamente similar ao gerado também para projetos para Windows e XBOX 360.

Pressione F5 (Build / Run). Detalhe, irei considerar neste exercício que você não está com um device acoplado no PC para um deploy no próprio Windows Phone 7, utilizando assim o emulador.

 

Somente uma tela azul como resultado? Não se preocupe, não começamos a escrever o código do nosso game ainda.

Agora vamos adicionar um SpriteFont no Content Project da nossa solução. Clique com o botão direito em Content Project (no Solution Explorer) e selecione Add, New Item.

Na janela Add Item, selecione Sprite Font na lista. Em filename defina SpriteFont1.spritefont

 

Mais para frente falaremos sobre sprites e como eles são responsáveis por tudo o que aparece na tela de um game.

Cara contextualizar, tenha em mente que tudo o que aparece na tela de um game como o herói, o placar, sua barra de energia, ícones de magia.. todos são sprites! Na imagem abaixo temos muitos deles caso na minha descrição você não tenha conseguido visualizar:

Não fique preocupado em entender todo código abaixo neste momento. Este blogpost a dedicado a iniciar sua jornada relacionada a Windows Phone 7 e XNA e não mergulhar a fundo da linguagem, neste caso C#.

Aproveitando, caso deseje mergulhar no aprendizado da linguagem, sugiro fortemente o livro Programando C# da MAKRON Books.

Agora, no código já existe no arquivo Game1.cs:

public class Game1 : Microsoft.XNA.Framework.Game
{
GraphicsDeviceManager grafics;
SpriteBatch spriteBatch;


public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
TargetElapsedTime = TimeSpan.FromTicks (333333);
}

Insira o seguinte código  entre as linhas 4 e 7:

//new font variable 
SpriteFont font;

Pronto, a fonte já está definida, mas ainda é necessário carregar na inicialização do programa o código que acabamos de digitar. Para isso, insira no método LoadContent logo após a linha spriteBatch = new SpriteBatch(GraphicsDevice); estas duas linhas:

 

//load the font
Font = Content.Load<SpriteFont>(“SpriteFont1”);

 

Estamos quase lá. Já definimos nossa fonte e carregamos na memoria no nosso game, porém agora é necessário "escrever" algo na nossa tela, literalmente.

 

Chamamos isto de Print, e é através dos objetos SpriteBatch e SpriteFont que podemos escrever o que desejarmos. Rótulos (ou Label de preferir) títulos, mensagens, grandes blocos de texto, etc.

 

Não entraremos em detalhe neste momento no ciclo de execução de um game feito em XNA (que por sinal é totalmente diferente do que você deve estar habituado caso já tenha conhecimentos em desenvolvimento Web ou Desktops convencionais, sempre orientados a eventos). Por enquanto é importante que saiba que nosso código precisa ser chamado no método Draw.

Vá até o método Draw e insira após a linha GraphicsDevice.Clear(Color.CornflowerBlue); o seguinte código:

//print a message
spriteBatch.Begin();
string text = “XNA Rocks!!!”;
Vector2 pos = font.MeasureString(text);
spriteBatch.DrawString(font, text, pos, Color.White);
spriteBatch.End();

base.Draw(gameTime);

 

Hora de rodar nosso programa novamente (Debug, Start Debugging ou simplesmente pressionando F5, o que você preferir).

 

Detalhe, o emulador não precisa ser fechado toda vez que desejar rodar sua aplicação. Você pode simplesmente dar stop no Debugging e deixa-lo aberto. Ele irá retornar para a tela inicial do Windows Phone 7 e aguardar novamente seu deploy (através do release ou debug). Isto fará com que economize tempo em seus testes.

 

Veja como ficou seu teste. O que achou?

 

Acredito que tenha achado a fonte do nosso sprite pequeno demais e o alinhamento não era bem o que esperava, estou certo?

Isto é porque, por padrão, aplicações feitas em XNA utilizam o formato landscape, mas já o emulador, também por padrão, sempre é inicializado no formato portrait.

O que fazer? Simples. Mouse-over na parte superior direita do emulador do Windows Phone 7. Um pequeno menu será mostrado. Umas das opções que temos é justamente rotacionar o emulador. Faça com que fique na posição landscape (na horizontal) e com os botões Start, Search e Back voltados para a direita.

O formato lanscape não necessariamente prevê que os botões do telefone ficarão nesta posição, embora a grande maioria dos desenvolvedores focados em devices "hand-sized" esperam que este seja o comportamento do usuário, girar o aparelho no sentido anti-horário para ativa-lo em nova orientação, e obviamente horário para retornar ao formato portrait.

Pronto, agora está bem melhor não?

 

 

Para finalizar esta sua primeira experiência com XNA para Windows Phone 7, acesse novamente o arquivo SpriteFont1.spritefont e altere o valor da fonte do nosso texto para maior. Só para deixar um "olá XNA" bem feito.

Tabém acredito que a esta altura você percebeu que nosso SpriteFont1.spritefont nada mais que é um XML.

 

 <!--
    Size is a float value, measured in points. Modify this value to change
    the size of the font.
    -->
    <Size>14</Size>

XNA Rocks! E se você tem interesse em Mobile e XNA.. YOU ROCK AS WELL Smiley

Bem vindo ao Windows Phone 7 com XNA.

[]'s! 



Tags:

Follow the Discussion

  • edsonedson

    Grande Mestres, show!!!!!!! apenas um comentário, no ítem



    1 //load the font
    2 Font = Content.Load<SpriteFont>(“SpriteFont1”);

    no início o item Font é em minúsculo font

    grande abraço

  • DaniloDanilo

    diego eu baixei o SDK criei um novo projeto, porem nao apareceu nenhum game1.cs e sim game1.vb

  • JulioJulio

    Danilo, tu estás utilizando um projeto de solução do tipo Visual Basic e não C#. Verifique na hora de criar o novo projeto!

  • Gustavo TGustavo T

    Muito bom...

    Boa a observação do "edson".

    Vamos aos novos conteúdos.

    Parabéns.

  • Bom demais.
    Continue daí, que eu continuo daqui !!!

  • Yuri MatosYuri Matos

    Eu baixei o SDK instalei mais só apareceu "Windows Game" ele serve ?
    sendo que no tutorial aparece "Windows phone game".

    desde já agradeço.

  • Elvis RodriguesElvis Rodrigues

    Show de bola, vou comer tudo com farinha...

  • RenatoRenato

    cara no meu vs 2010 tá dando o seguinte erro: No overload for method 'MeasureString' 3 arguments.
    qual é pq num deu certo aqui?

    me ajudem por favor!!!

  • RenatoRenato

    Deu certo galera, eu que tava fazendo errado!!!
    valeu!!!!!!

  • BrunoBruno

    Era exatamente isso que eu queria. Aprender desde o começo. vou me dedicar muito.

  • ItaIta

    Acredito que faltou explicar como baixar o XNA Framework no visual Studio 2010, pois ele não vem instalado, posta ai a forma de se fazer isso para ficar mais completo.

  • VictorVictor

    o meu aparece o seguinte erro ai rodar "the current display adapter does not meet the emulator requirements to run xna frameworks applications", ai procurei e vi que é pq meu pc é XDDM 1.0, tem como atualizar para p XDDM 1.1 ou nao poderei criar projetos Xna?

  • joao vitorjoao vitor

    Estranho esta dando erro no meu código que ele passou ali olha
    font = Content.Load<SpriteFont>(“SpriteFont1”); ele da um erro logo ali no (“SpriteFont1”) falando que faltando alguns caracteres sendo que segui direitinho oque o tutorial falou ali e nesse código também deu erro string text = “XNA Rocks!!!”; logo no inicio do "XNA" uma linha grifada de vermelho,outra linha também grifada no primeiro "!" e no das aspas final do código.
    Alguem pode me da uma força ai?
    Valeu =)

  • @joao vitor: Eu tava com o Mesmo problema, mas esqueci que na programação com C tem que diferenciar Maiuscula de Minuscula, basta rescrever o codigo novamente, se possivel evite Ctrl+c

  • GustavoGustavo

    o Direct SDK é este aqui ó?: http://www.baixaki.com.br/download/directx-sdk.htm

  • KiraKira

    Como posiciono o texto que escrevi na tela...digamos que eu queira escrever o XNA ROCK não em cima e sim em baixo, ou que eu aumentei a letra a tal ponto q ela fique saindo da tela....como faço isso??
    na parte onde aumenta o tamanho, la em baixo tem a posição mas não consegui nada....podem me ajudar??

  • @Gustavo: Você quer baixar o DirectX SDK ou o Game Studio 4.0 (referente ao tutorial)? O link para baixar o GS 4.0 é este: http://www.microsoft.com/en-us/download/details.aspx?id=23714

     

  • VitorVitor

    Muito bom, mas eu acho que vc,se pude-se, deveria comentar mais os códigos que vc adiciona (sua funcionalidade, a sintaxe).

  • AlbertoAlberto

    Caso sua aplicação de crash na tela use [graphics.IsFullScreen = true;] em public Game1

  • Paulo SodrePaulo Sodre

    Amigo já instalei o sdk e service pack 1 exigido pelo visual studio, mas quando clico na template de criação do Windows Game Phone ,e retorna uma mensagem dizendo que não foi possível localizar o arquivo Game.ico e depois outra mensagem que diz q devo copiar esse arquivo da pasta ProjectTemplates para Project. O problema é que não acho esse arquivo na pasta mencionada. o que eu faço?

  • Joao LuizJoao Luiz

    Estou tendo problemas.
    Segue o print do erro:
    http://img600.imageshack.us/img600/214/errovs2010.png
    É como se ele não tivesse achando o spritefonte1...

  • Joao LuizJoao Luiz

    Já resolvi o erro.
    Eu tinha colocado o nome errado no objeto spritefonte...
    Corrigi e funcionou de boa!
    =P

  • MarciusMarcius

    Muito bom, parabéns a vocês que estão disponibilizando esse material valiosíssimo para a galera, valeu mesmo!

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.