Vocês devem continuar a construir o jogo Breakout, pedido no Laboratório 4. Você já deve ter percebido que o item 7 é mais difícil do que parece! Verificar se a bola colidiu com o tijolo é simples, basta checar se o centro da bola está dentro dos limites do tijolo. Mas determinar em qual parede ela rebateu, para poder mudar a sua direção, é bem mais complicado.
Uma maneira de verificar onde a bola rebateu é traçar a linha correspondente
ao movimento da bola, e então checar as interseções dela com os lados do tijolo.
A direção do movimento dá quais lados temos que checar: se a bola está indo para
a cima (vy < 0
), checamos a interseção com o fundo; se a bola está indo para
baixo (vy > 0
), checamos a interseção com o topo; se a bola está indo para a
direita (vx > 0
), checamos a interseção com a lateral esquerda; finalmente,
se a bola está indo para a esquerda (vx < 0
), checamos a interseção com a
lateral direita.
Para verificar a interseção, basta lembrar que uma reta é descrita pela
equação y = ax + b
, onde a
é a inclinação da reta, no nosso caso dada
por vy/vx
.
1. Implemente as funções auxiliares linha_b
, linha_x
e
linha_y
, que, para uma reta y = ax+b
, calculam respectivamente
o parâmetro b
dados a
, x
e y
, o valor de x
dados
a
, b
e y
, e o valor de y
dados a
, b
e x
.
2. Use a função colidiu
acima para implementar a colisão do jogo
breakout. Após a colisão, a bola deve ser movida para o ponto de
interseção dela com o tijolo, ou no próximo quadro do jogo ela ainda
vai estar colidindo, e pode ficar “presa” dentro do tijolo.
Última Atualização: 2016-05-18 10:58