A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Apresentação Alexandre Tolstenko Nogueira

Apresentações semelhantes


Apresentação em tema: "Apresentação Alexandre Tolstenko Nogueira"— Transcrição da apresentação:

1

2 Apresentação Alexandre Tolstenko Nogueira

3 Objetivo do Curso Divulgar nosso trabalho; Encontrar pessoas determinadas; Formar um grupo forte e unido; Fazer crescer o Gamux; Ganhar campeonatos e chamar atenção!

4 Ao final do curso: Noções básicas do framework XNA; Estruturação de um jogo simples, porém completo (braistorm, planejamento, definindo limites);

5 NÃO ensinaremos: Desenhar (mas vamos usar muitos); Compor músicas (mas vamos colocar elas nos jogos); Ganhar dinheiro (por hora...);

6 Devaneios O que vou aprender com esse curso? – Pergunta errada... -> atitude passiva. O que quero aprender? (melhorou) Tudo irá depender do seu interesse! Quero programar um MMO-RPG ou talvez um Crysis? Eu também quero! Mas... Será se consigo?

7 Devaneios Não apenas basta querer, tem que se empenhar, mas além de tudo temos que saber dimensionar o que queremos. Guardem bem isso: – Temos que saber dimensionar nossos objetivos! Como aprendo isso? – Sentindo como se programa jogos simples!

8 PONG (Sons de carteiras quebrando e teclados sendo arremessados; grunhidos tímidos de desespero do garoto do fundo que queria fazer um jogo da Barbie...)

9 TeoriaPrática

10 TeoriaXNAComponentesCamadasFacilidadesPong Carregar e desenhar imagens na tela Estrutura e organização básica Colisões

11 XNA Componentes 11 Framework Framework GraphicsAudioInputMath Storage Network

12 XNA Camadas Framework(extensões) Modelo de Aplicação Pipeline de Conteúdo (content pipeline) Framework(núcleo)GraphicsGraphicsAudioAudioInputInputMathMathStorageStorage NetworkNetwork Plataforma Direct3DDirect3DXACTXACTXINPUTXINPUTXCONTENTXCONTENT Jogos Starter Kits CódigoCódigoConteúdoConteúdoComponentesComponentes L egenda XNA já provê Você cria ComunidadeComunidade

13 Facilidades (algumas) Renderização de baixo nível Recursos oferecidos – Model, Mesh, Bones; – Texturas, Audio, Vídeo e outros conteúdos; – Efeitos e Shaders; – Redes SpriteBatch para 2D e partículas BasicEffect facilita apresentar objetos 3D 13

14 TeoriaXNAPongHistóriaObjetivo Modelagem Computacional Carregar e desenhar imagens na tela Estrutura e organização básica Colisões

15 História Criadores: – Nolan Bushnell e Ted Dabney O que é? O videogame Pong consiste em um console ligado a um monitor e era movido a moedinhas. 15

16 História (ou estória?) – Os inventores deixaram a máquina em um bar em San Francisco, Califórnia. No dia seguinte, tiveram uma surpresa quando checaram a máquina e viram que ela estava lotada de moedas. Aquelas moedas mudaram toda a perspectiva que os criadores tinham em relação a seu invento. Aí estava o primeiro videogame lucrativo da história. – Ao invés de vender a idéia para alguém, era melhor abrir o seu próprio negócio. E em 27 de Junho de 1972, a empresa Atari foi fundada. 16

17 Objetivo Objetivo: – O objetivo era acertar a esfera (bola) com sua raquete (barra vertical) e lançar para o campo adversário, marcando ponto quando a bola passasse ao campo adversário. 17

18 Modelagem Computacional O que precisa para representar o PONG? – Ball (ou quadrado); – Paddle (ou barra); Como representar esses elementos? – Retângulo – Imagem ou Textura 18

19 TeoriaXNAPong Carregar e desenhar imagens na tela RectangleTexture2DSpriteFontCódigos Estrutura e organização básica Colisões

20 Rectangle Rectangle(X, Y, Width, Height) (X,Y) Width Height 20

21 Texture2D Imagem a ser mapeada no retângulo para ser exibida na tela. 21

22 Font Implementações: – Imagens (veremos como fazer isso em outra aula); – Compilado a partir de fontes. 22

23 Códigos Rectangle: – Declaração: Rectangle ball_rect; – Alocação: ball_rect = new Rectangle(X,Y,Width,Height) – Acesso: ball_rect.X = numero_inteiro; Vector2: – Declaração: Vector2 pos_texto; – Alocação: pos_texto = new Vector2(X,Y) – Acesso: pos_texto.X = numero_float; 23

24 Códigos Texture 2D: – Declaração: Texture2D ball; – Carregamento: ball = Content.Load ("whitepixel"); ball = Texture2D.FromFile(GraphicsDevice, "Content/whitepixel.png"); – Desenhando: spriteBatch.Begin(); spriteBatch.Draw(ball, position, Color.White); spriteBatch.End(); 24

25 Códigos SpriteFont: – Declaração: SpriteFont Font; – Carregamento: font= Content.Load (“Fonte"); //aonde “Fonte” foi previamente adicionado ao projeto. – Desenhando: spriteBatch.Begin(); spriteBatch.DrawString(font, pos_texto,”texto”, Color.White); spriteBatch.End(); – Dica útil: Vector2 m_string = font.MeasureString(“Texto"); 25

26 Códigos Captura de dados para o teclado: public override void Update(GameTime gameTime) {... KeyboardState keyboardState = Keyboard.GetState(); if (keyboardState.IsKeyDown(Keys.Up)) Posicao.Y -= 10; if (keyboardState.IsKeyDown(Keys.Down)) Posicao.Y += 10; if (keyboardState.IsKeyDown(Keys.Left)) Posicao.X -= 10; if (keyboardState.IsKeyDown(Keys.Right)) Posicao.X += 10;... } 26

27 TeoriaXNAPong Carregar e desenhar imagens na tela Estrutura e organização básica Declarações de Variáveis ConstrutorInitializeLoadContentUpdateDrawUnloadContentColisões

28 Estrutura e Organização Básica – Váriaveis: Declaração de variáveis da classe. – Construtor: Game1() -> possui o mesmo nome da classe. Executado quando se instancia um objeto do da Classe – Initialize() Inicializações gerais do jogo – LoadContent() Chamado sempre que é necessário carregar os recursos (conteúdos) – UnloadContent() Chamado sempre que é necessário liberar os recursos (conteúdos) – A cada game loop(60.ticks/seg): Update – Onde se coloca a lógica principal do jogo (cálculos) Draw – Onde se colocam as rotinas de desenho do jogo 28

29 TeoriaXNAPong Carregar e desenhar imagens na tela Estrutura e organização básica ColisõesRetangular...

30 Colisão retangular update_objects(){ for (each_object) save_old_position(); calc new_object_position {based on velocity accel. etc.} if (collide_with_other_objects()) new_object_position = old_position(); {or if destroyed object remove it etc.} } Sintaxe XNA para Rectangle: if(rect1.Intersects(rect2)) 30

31 … Pixel a Pixel; Circular; Poligonal; OBB; AABB; Portal; BSP; Quadtree; Octree; Vertex-in-triangle; … (ad infinitum). 31

32 TeoriaPrática

33 Prática Prática: – Pong com colisão simples. Opcional: transformar o pong em Breakout Desafio: – Pong com colisão vetorial, poligonal ou outra técnica mais avançada. 33

34 Referências 34

35 Agradecimento spriteBatch.DrawString( Arial, Arial, "Obrigado Pela Atenção!", "Obrigado Pela Atenção!", positionVect, positionVect, Color.Black); Color.Black); 35


Carregar ppt "Apresentação Alexandre Tolstenko Nogueira"

Apresentações semelhantes


Anúncios Google