slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
INPUT PowerPoint Presentation
Download Presentation
INPUT

Loading in 2 Seconds...

play fullscreen
1 / 37

INPUT - PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on

INPUT. Alexandre Tolstenko Nogueira Colaborador : Erick Luis Moraes de Sousa “ Puyol ” http://forum.gamux.com.br. Papel e caneta na mão !. Revisão. Revisão. Classe x Objeto; Classe x Struct ; Método x Atributo; O que é um construtor; Diferença entre vetores e lista;

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'INPUT' - vern


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
input

INPUT

Alexandre Tolstenko Nogueira

Colaborador: Erick Luis Moraes de Sousa “Puyol”

http://forum.gamux.com.br

revis o1
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.
motivos1
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.
motivo pessoal1
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.
objetivos
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.
teclado
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.
controle de xbox
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
mouse
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.
slide17
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.
wiimote
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.
outros
Outros
  • DirectInput;
  • Tratamento direto com a memória (escrever um driver): multimouse e wiimote;
  • Projeto Natal;
    • Câmeras;
    • Realidade Aumentada.
problema
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.
solu o
Solução
  • 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.
gamecomponent
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 ().
drawablegamecomponent
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 ().
modificadores
Modificadores
  • 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.
outros modificadores
Outros Modificadores
  • Static;
  • Override;
  • Const;
  • Extern;
  • Abstract;
  • Event;
  • Sealed;
  • Partial;
  • Readonly;
  • Unsafe;
  • Virtual;
  • Volatile.
static
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.

publicstaticclassClasseExemplo

{publicstatic Vector2 position;

publicstaticInputStateGetState(){...}

}

override
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”:

protectedoverridevoidInitialize()

{

base.Initialize();

}

inputmanager gen rico
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.
inputstate gen rico
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 Downfor pressionada, Y = 1;
      • Caso gamepad mova o thumb para baixo:
        • Y = quantidade de deslocamento.
pr tica
Prática
  • Prática:
    • Programar um Mata-Moscasusandomais de um tipo de input simultaneamente;
      • Envelopartodosos inputs no mesmoInputState.
  • Desafio:
    • Utilizar Multi-Mouse e/ouWiimote
agradecimento
Agradecimento

spriteBatch.DrawString(

Arial,

"Obrigado Pela Atenção!",

positionVect,

Color.Black);