@maciejewsky [email protected] [email protected]
TRANSCRIPT
Desenvolvendo Games para Windows Phone 7 com XNA e Visual BasicWPH306
Jenner Maciejewsky RochaMVP Visual BasicTribunal de Contas do Estado do Pará
Meus Contatos
www.facebook.com/jenner.rocha
@maciejewsky
www.maciejewsky.net/blog
Objetivos
Histórico: Microsoft x Dispositivos Móveis
Presente e Futuro
Jogos Para Celular
Jogos para celulares percorreu um longo caminho
Usuários esperam ter uma mini versão do seu console em seus celulares.
Windows Phone é capaz de entregar isto
Você tem uma plataforma para escrever seus jogos
Você tem uma plataforma para ganhar dinheiro
Games Hub e Xbox LIVE
Xbox LIVE é um Serviço
Xbox LIVE além do console Windows Phone é o primeiro passo para a nossa visão de um serviço de jogos onipresenteVocê pode usar todo recurso de hardware e sensores em seus jogos
Gamertag
Amigos
Conquistas
Conjunto consistente de recursos de hardware definidos pela Microsoft 800 or 480
480 or 320
• Mínimo de 4 Pontos de Toque
• Sensores de GPS, Acelerômetro, Luz e Proximidade
• Câmera de no mínimo 5MP
• 256 MB de Memória
• GPU compatível com Directx 9
• CPU de 1Ghz
• Botões padronizados
Plataforma Consistente
Windows Phone
Hardware
Elementos Comuns de Hardware
Foco na Qualidade
Duas Opções
Framework com foco em JogosCriação rápida de jogos 2D e 3D multi-telaTecnologia Madura, robusta e amplamente adotada.
JOGOS(e aplicações)
APLICAÇÕES(e jogos)
Fazer uso do XAMLCriação de aplicativos visualmente ricosUso de HTML/Javascript.Tecnologia madura, robusta, amplamente implantada
Windows Phone Para Desenvolvedores
XNA FrameworkSimplificando o Desenvolvimento de Jogos
Detalhes do Framework
Common Base Class Library
Collections ComponentModel Configuration
DiagnosticsReflection IO
Security Threading
Runtime Resources Globalization TextLocation Net
ServiceModel Linq
Application Object
Silverlight Presentation and Media XNA Frameworks for Games
Windows Phone Frameworks
NavigationShapes Markup Media
Controls Drawing IsolatedStorage
AudioMedia GraphicsInput
Drawing GamerServices
Content
PhoneApplicationPage
PushNotification
WebBrowserControl SensorsPhoneApplicationFra
me
Camera Device Integration
Launchers & Choosers
Windows Phone ControlsMultiTaskin
gStructured
Data
Silverlight4.0
Silverlight Integration
Sockets
XNA Game Studio
XNA Framework
CriandoJogos
Framework de desenvolvimento de jogos em .net
C#/VB.NET, .NET e Visual Studio
Foco no jogo, e não na plataforma
Grande facilidade no desenvolvimento
Multi plataforma (Windows, XBox360, Windows Phone 7)
XNA Game Studio 4.0
Desenvolvimento para
Windows Phone 7
APIs Simplificad
a
Integrado ao Visual
Studio 2010
Suporte a recursos de
Audio
Novos efeitos configuráveis
Integração entre Silverlight e XNADispositivo Silverligh
t UIDirect3D Surface
Como começar ?
• Microsoft XNA Game Studio 4.0• Microsoft XNA Game Studio 4.0 Windows Phone Extensions• Microsoft XNA Framework Redistributable 4.0• Windows Phone Emulator• Microsoft Phone 7 Add-Inn for Visual Studio 2010• Microsoft Windows Phone 7 Developer Resources
Baixe as ferramentas
• http://channel9.msdn.com/learn/courses/WP7TrainingKit/ • http://windowsteamblog.com/blog/wpdev/ • http://www.sharpgames.net/ • http://create.msdn.com/
Estude
Um Framework vários dispositivos
Framework XNA projetado para ser multiplataforma
Redução de Tempo para aprender
Projeto de sincronização entre plataformas
= =
Desenvolver Games é Igual para todas plataformas?
Windows
!= !=
Não
Windows
Anatomina de Um Game XNA
INICIO Load Content
Update
Draw
INICIO Load Content
O que acontece ao executar o jogo?
Inicializar todos os recursos• Carrega as texturas, modelos, scripts
etc
Executa repetidamente o jogo:• Atualiza o mundo do jogo• Lê as açoes do usuário e atualiza o
estado e a posição dos elementos de jogo
• Desenhar o mundo do jogo• processa os elementos do jogo na
console
Nosso Game - Zorgonoid
A classe GamePrincipal classeReúne e organiza todos os objetos básicos do jogoGerencia os métodos em loop
Cria a estrutura elementar do seu jogo
Cria a janela do jogo
Microsoft XNA: Desenvolvimento de Jogos Célula Acadêmica Sophos
Classe Game e MetódosPublic class Zorgonoid Inherits Microsoft.Xna.Framework.Game
Protected Overrides Sub LoadContent() … … End Sub
protected override void Update(ByBal gameTime As GameTime) … … End Sub
protected override void Draw(ByVal gameTime As GameTime) … … End SubEnd Class
Define a textura da bola no jogo
XNA fornece um tipo de Texture2D que contém uma textura 2D (flat) a ser desenhado no visor
As classes do jogo precisa conter uma variável para armazenar a textura de bola que será desenhada quando o jogo é executado
Esta variável será compartilhada por todos os métodos no jogo
' Texturas
Private fundo as Texture2DPrivate jogador as Texture2D
Carregando o Conteúdo do Jogo
LoadContent é chamado quando o jogo é iniciado
Aqui é inserido o código que carrega os recursos para o jogo
O conteúdo inclui imagens, sons, modelos etc.
protected overrides Sub LoadContent() ' Cria um SpriteBatch, que pode ser usado para ' desenhar as texturas. spriteBatch = new SpriteBatch(GraphicsDevice)
fundo = Content.Load(Of Texture2D)("fundo") jogador = Content.Load(Of Texture2D)("jogador")End Sub
Coordenadas e PixelsXNA desenha objetos na tela utilizando coordenadas
com bases nos pixels
Uma tela padrão do Windows Phone é 800 pixels de largura
e 480 pixels de altura
Isto dá o intervalo de valores possíveis para exibir
coordenadas
Se você desenhar coisas fora da tela isto não causa
problemas, mas nada será desenhado
32
X and Y in XNAO sistema de coordenadas usado pelo XNA inicia
nas coordenadas (0,0), canto superior esquerdo
Aumente/Diminua o valor de X para mover objetos
através da tela, na horizontal
Aumente/Diminua o valor de Y para mover objetos
através da tela na posição vertical
É importante conhecer essas informações.
33
Posicionando a Bola usando retangulos
Podemos adicionar um retangulo para gerenciar a posição da bola na tela
Inicializaremos esse retangulo no LoadContent
// Game WorldTexture2D regiaoJogador;Rectangle regiaoBola;
Método Draw
O método Draw é chamado repetidamente quando um jogo XNA é executando• Ele tem o trabalho de desenhar o que será exibido na tela
Um novo projeto de jogo XNA contém um método Draw que limpa a tela para CornflowerBlue
Devemos adicionar o nosso próprio código para desenhar a bola
protected override void Draw(GameTime gameTime){ GraphicsDevice.Clear(Color.CornflowerBlue); base.Draw(gameTime);}
SpriteBatch Begin e End
A chamada para o método Begin diz ao SpriteBatch para começar uma montagem de um novo conjunto de operações de desenho
A chamada para o método End diz ao SpriteBatch que não existe mais operações e faz com que o processamento seja realizado
protected override void Draw(GameTime gameTime){ GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin(); // Code that uses spriteBatch to draw the display spriteBatch.End();
base.Draw(gameTime);}
O Método Update
O método Update é chamado automaticamente 30 vezes por segundo quando um jogo estiver em execução
Ele é responsável por gerenciar o "mundo do jogo"
• Em um jogo pingpong isso significa atualizar as posições da raquete e da bola e verificar as colisões
protected override void Update(GameTime gameTime){
// TODO: Add your update logic here
base.Update(gameTime);}
http://developer.windowsphone.com
http://developer.windowsphone.com
http://channel9.msdn.com/learn/courses/WP7TrainingKit
http://www.sharpgames.net
http://windowsteamblog.com/windows_phone/b/windowsphone/
Recursos
Palestras RelacionadasWPH201 Entendendo a plataforma dev do Windows Phone
WPH301 Ciclo de Vida e Performance de aplicações no WP7
WPH401 Acesso a base de dados (local DB) no Windows Phone 7
WPH307 Multi-tasking no Windows Phone 7
Recursos
Recursos para IT Pros
Recursos para Desenvolvedores
http://technet.microsoft.com/pt-br
http://msdn.microsoft.com/pt-br
Getthefreemobileappforyourphonehttp://gettag.mobi
Getthefreemobileappforyourphonehttp://gettag.mobi
Não esqueça de preencher sua
avaliação onlinewww.teched.com.br/
avaliacao
Getthefreemobileappforyourphonehttp://gettag.mobi
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.