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

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

INPUT Alexandre Tolstenko Nogueira Colaborador: Erick Luis Moraes de Sousa Puyol

Apresentações semelhantes


Apresentação em tema: "INPUT Alexandre Tolstenko Nogueira Colaborador: Erick Luis Moraes de Sousa Puyol"— Transcrição da apresentação:

1

2 INPUT Alexandre Tolstenko Nogueira Colaborador: Erick Luis Moraes de Sousa Puyol

3 REVISÃO Papel e caneta na mão!

4 Revisão 1.Classe x Objeto; 2.Classe x Struct; 3.Método x Atributo; 4.O que é um construtor; 5.Diferença entre vetores e lista; 6.O que são pilhas e filas; 7.Árvores. 4

5 MOTIVOS

6 Motivos 1.Evitar ter que escrever diversas vezes os códigos de captura de dados; 2.Criar uma forma de tratar todos os tipos de entrada de maneira idêntica (abstrair); 3.Automatizar o tratamento de input. 6

7 MOTIVO PESSOAL

8 Motivo Pessoal 8ª Série: Usar o mouse de bolinha como um medidor de forças: acelerômetro; 1º Ano: Usar a entrada analógica serial de joystick e o mouse para mapear a face de uma moeda. 8

9 OBJETIVO

10 Objetivos 1.Conhecer as formas de captura de dados de periféricos para games; 2.Entender os estados de um periférico de game; 3.Aprender a tratar inputs; 4.Generalizar os periféricos para um periférico virtual. 10

11 INPUT Como interagir com o game.

12 TeoriaPrática

13 Teoria Tipos de Input TecladoXboxMouseWM7WiiOutrosDificuldadesOO Game Components Input Genérico

14 Teclado 14 Toda captura de dados é booleana: pressionado ou liberado; A quantidade máxima de teclas pressionadas varia de teclado para teclado e geralmente são 3.

15 Controle de Xbox 15 ThumbSticks variam entre -1.0f e 1.0f para cada eixo; DPad são ButtonState: Pressed ou Released; Os Triggers variam entre 0.0f e 1.0f; Possui dois motores para vibração, um no lado esquerdo e outro no lado direito. Um grave e outro agudo; Buttons são ButtonState. Ex. Recicle

16 Mouse 16 Os botões do mouse são ButtonState, podendo ser released ou pressed; O valor do botão do meio, scrollwheel, é dado por um inteiro que é acumulado desde o início do jogo; A posição do mouse é determinada a partir de duas variáveis que armazenam sua posição X e Y; Observação: Implementamos uma biblioteca que permite capturar até 128 mouses simultaneamente.

17 WM7 17 O aparelho com Windows Mobile 7 possui: – Acelerômetros; – Touchscreen que suporta multitouching; – Motor que vibra o aparelho; – Cada toque possui posição, estado, id e pressão; – Microfone.

18 Wiimote 18 O Wiimote é o sensor, enquanto que a barra é o emissor de infra- vermelho; Possui posição na direção que está sendo apontado, velocidade e aceleração; Pode-se controlar o output (leds e vibração); A biblioteca utilizada por nós consegue controlar quatro sensores do Wiimote. Dada essas quatro informações deve-se calcular o centro da mira; Extensões.

19 Outros 19 DirectInput; Tratamento direto com a memória (escrever um driver): multimouse e wiimote; Projeto Natal; – Câmeras; – Realidade Aumentada.

20 Teoria Tipos de Input DificuldadesProblemaSoluçãoOO Game Components Input Genérico

21 Problema 21 Qual é o problema de apenas verificar se a tecla está pressionada? – E se ele disparar um evento como mudar tela e a seguinte também usa essa tecla para mudar de tela? E se quisermos tratar um combo? – Hadouken: Meia lua para baixo + soco. Qual o problema de mandar o personagem andar o quanto que o thumbstick se dobrou? – DeadZone.

22 Solução 22 Eventos: – Guardar estado anterior; – Verificar estados JustPressed ou JustRelease; Combo: – Guardar lista de estados anteriores; GamePad: – Região na qual a captura de dados é desprezada, chamada de deadzone.

23 Deadzone 23

24 TeoriaDificuldadesTipos de Input Game Components Game Component Drawable Game Component OO Input Genérico

25 GameComponent 25 Componentes independentes de um jogo que não sejam desenháveis na tela: – Engine de Física, Networking, Input e qualquer outro componente que se atualize sem desenhar na tela; Possui métodos semelhantes ao do Microsoft.XNA.Framework.Game: – Initialize (); – Update ().

26 DrawableGameComponent 26 Componentes independentes de um jogo que sejam desenháveis na tela: – Telas e Gerenciadores de Tela, Menus, Interfaces Gráficas; Possui métodos semelhantes ao do Microsoft.XNA.Framework.Game: – Initialize (); – Update (); – Draw ().

27 TeoriaDificuldadesTipos de Input Game Components OOModificadoresOverride Input Genérico

28 Modificadores 28 Modificadores de Acesso: – Public: O membro declarado como public pode ser acessado de qualquer outra classe do jogo; – Private: Só pode ser acessada dentro do escopo no qual foi declarada; – Internal: Só pode ser acessada por membros do mesmo código; – Protected: Só pode ser acessada da classe em que foi declarada ou de classes que herdem da primeira.

29 Outros Modificadores 29 – Static; – Override; – Const; – Extern; – Abstract; – Event; – Sealed; – Partial; – Readonly; – Unsafe; – Virtual; – Volatile.

30 Static 30 Quando se declara algo como static, o mesmo é armazenado numa posição de memória, podendo-se utilizá-la e alterá-la sem ter de criar novas instâncias dela; – Não existe construtor; – Métodos e variáveis são acessados diretamente. public static class ClasseExemplo { public static Vector2 position; public static InputState GetState(){...} }

31 Override 31 Quando uma classe herda de uma segunda e queremos re-implementar um método da primeira na segunda: – A Game1 herda da Game e caso queiramos chamar o método da primeira classe, utilizamos base: protected override void Initialize() { base.Initialize(); }

32 TeoriaDificuldadesTipos de Input Game Components Herança Input Genérico InputManager Genérico InputState Genérico Diagrama

33 InputManager Genérico 33 Classe genérica que envelopa todos os tipos de input para que um programador possa utilizá-lo de maneira transparente; Ao invés de sempre procurar saber qual o input, a posição do mouse e a posição do Wiimote seriam tratadas da mesma maneira; Num caso extremo de um game simples, podemos tratar gamepad, mouse, wiimote, keyboard, entre outros inputs de maneira idêntica.

34 InputState Genérico 34 Classe genérica que armazena todos os tipos de input para que um programador possa utilizá-lo de maneira transparente; Ex. Solução para Direcionais: – Eixo X e Y como float. Caso tecla Up for pressionada, Y = -1; Caso tecla Down for pressionada, Y = 1; Caso gamepad mova o thumb para baixo: – Y = quantidade de deslocamento.

35 TeoriaPrática

36 Prática Prática: – Programar um Mata-Moscas usando mais de um tipo de input simultaneamente; Envelopar todos os inputs no mesmo InputState. Desafio: – Utilizar Multi-Mouse e/ou Wiimote 36

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


Carregar ppt "INPUT Alexandre Tolstenko Nogueira Colaborador: Erick Luis Moraes de Sousa Puyol"

Apresentações semelhantes


Anúncios Google