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

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

INPUT Alexandre Tolstenko Nogueira

Apresentações semelhantes


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

1

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

3 Papel e caneta na mão! Revisão

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

5 MotivoS

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

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.

9 Objetivo

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

11 Como interagir com o game.
Input

12 Teoria Prática

13 Teoria Tipos de Input Teclado Xbox Mouse WM7 Wii Outros Dificuldades OO Game Components Input Genérico

14 Teclado 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 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 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 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 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 DirectInput; Tratamento direto com a memória (escrever um driver): multimouse e wiimote; Projeto Natal; Câmeras; Realidade Aumentada.

20 Teoria Tipos de Input Dificuldades Problema Solução OO Game Components Input Genérico

21 Problema 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 Eventos: Combo: GamePad: 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

24 Drawable Game Component
Teoria Dificuldades Tipos de Input Game Components Game Component Drawable Game Component OO Input Genérico

25 GameComponent 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
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 Teoria Dificuldades Tipos de Input Game Components OO Modificadores Override Input Genérico

28 Modificadores Modificadores de Acesso: Public: Private: Internal:
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 Static; Override; Const; Extern; Abstract; Event;
Sealed; Partial; Readonly; Unsafe; Virtual; Volatile.

30 Static 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 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 InputManager Genérico
Teoria Dificuldades Tipos de Input Game Components Herança Input Genérico InputManager Genérico InputState Genérico Diagrama

33 InputManager Genérico
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 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 Teoria Prática

36 Prática Prática: Desafio:
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

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


Carregar ppt "INPUT Alexandre Tolstenko Nogueira"

Apresentações semelhantes


Anúncios Google