41

Upload: maria-do-carmo-delgado-varejao

Post on 07-Apr-2016

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br
Page 2: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Desenvolvendo Games para Windows Phone 7 com XNA e Visual BasicWPH306

Jenner Maciejewsky RochaMVP Visual BasicTribunal de Contas do Estado do Pará

Page 3: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Meus Contatos

www.facebook.com/jenner.rocha

@maciejewsky

[email protected]

www.maciejewsky.net/blog

[email protected]

Page 4: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Objetivos

Page 5: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Histórico: Microsoft x Dispositivos Móveis

Page 6: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Presente e Futuro

Page 7: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br
Page 8: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 9: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Games Hub e Xbox LIVE

Page 10: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 11: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 12: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 13: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Windows Phone Para Desenvolvedores

Page 14: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

XNA FrameworkSimplificando o Desenvolvimento de Jogos

Page 15: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 16: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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)

Page 17: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 18: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Integração entre Silverlight e XNADispositivo Silverligh

t UIDirect3D Surface

Page 19: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 20: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Um Framework vários dispositivos

Framework XNA projetado para ser multiplataforma

Redução de Tempo para aprender

Projeto de sincronização entre plataformas

Page 21: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

= =

Desenvolver Games é Igual para todas plataformas?

Windows

Page 22: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

!= !=

Não

Windows

Page 23: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Anatomina de Um Game XNA

Page 24: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

INICIO Load Content

Update

Draw

INICIO Load Content

Page 25: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 26: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Nosso Game - Zorgonoid

Page 27: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 28: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 29: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 30: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 31: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 32: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 33: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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;

Page 34: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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);}

Page 35: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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);}

Page 36: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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);}

Page 37: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 38: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 39: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

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

Page 40: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

Não esqueça de preencher sua

avaliação onlinewww.teched.com.br/

avaliacao

Getthefreemobileappforyourphonehttp://gettag.mobi

Page 41: @maciejewsky maciejewsky@msn.com  Jenner.rocha@terra.com.br

© 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.