Tarefa 8 - Aula 9
- Ulisses Silva
- 16 de set. de 2018
- 2 min de leitura
Com base no jogo Pong do Atari 2600, explicar as diferenças entre o uso da variável keyPressed e a função keyPressed() no Processing.

O jogo pong do atari simula uma partida de ping pong entre duas pessoas. Portanto, é preciso que existam no programa duas barras que irão representar as raquetes onde a bola irá colidir e mudar de direção.
Com base nos códigos estudados em sala, criei dois procedimentos que norteiam toda a interação do jogo. Um para desenhar os retângulos em locais específicos (cada um em um dos cantos da tela), e outro para desenhar e movimentar a bola. Além isso, nesse último, criei condições booleanas para checar a colisão da bola com as barras.
Para que haja interação para os usuários mexerem as barras, precisei utilizar as variáveis "key" do Processing, que equivalem às posições de cada tecla no teclado do computador. E para checar se uma tecla está sendo pressionada, podemos usar a variável "keyPressed" ou o procedimento "keyPressed()".
A variável "keyPressed" retorna apenas dois possíveis resultados, verdadeiro ou falso, pois ela é do tipo booleana. Ela não checa uma tecla específica no teclado, ela apenas checa se alguma tecla foi pressionada e retorna a informação se é verdadeiro ou falso.
O procedimento "keyPressed()" no entanto, é chamado sempre que alguma tecla for pressionada e não retorna nada. Dentro dele podemos incluir várias instruções sempre que alguma tecla for pressionada.
Para o nosso jogo, poderíamos usar qualquer um dos dois comandos. Pois o que determinará o movimento são os condicionais booleanos para as teclas específicas. No caso as teclas serão: 'W', 'S', 'Seta para cima' e 'Seta para baixo'. O 'W' e o 'S' movem a barra do lado esquerdo (jogador 1) e as setas para cima e para baixo movem a barra do lado direito (jogador 2).
No meu programa optei por usar a variável "keyPressed" porque ela tem uma taxa de repetição mais rápida do que o procedimento "keyPressed()". E após alguns testes, adicionei uma condição que faz a bola retornar para o centro quando ela ultrapassa as margens da tela.
GIF do funcionamento do programa.

OBS: Note que no meu código deixei as cores aleatórias de uma maneira que o fundo e as cores dos outros elementos (barras, linhas e bola) sejam sempre o inverso uma da outra.
Link do código em texto: Baixar o texto do código!
Comments