4
respostas

Como posso fazer essas melhorias?

O meu projeto terminou assim: https://editor.p5js.org/nathanmaciel05/sketches/IUwzJ_WsW Gostaria de realizar algumas melhorias nele: Como altero o movimento do oponente para ele não ficar seguindo a bolinha eternamente e nunca errar? Como faço para a bolinha não passar mais por baixo da linha amarela q eu coloquei para marcar o meio da quadra e começar a passsar por cima dela? Como limitar o movimento das raquetes para elas não estrapolarem a borda da tela?

4 respostas

Não vou te dar a resposta pronta, mas vou te dar alguns dicas que podem te ajudar a fazer estas mudanças, e vou coloca-lás na ordem que você perguntou.

1º - Você pode criar uma variável com o valor zero, e quando o oponente fizer um ponto, esse valor aumenta em 1, e aplicar essa variável no eixo Y da raquete do oponente. Assim, quando ele for marcando um ponto, o eixo Y da raquete do oponente vai ser alterado, e portanto ele vai errar. É um pouco chato fazer isso, mas da pra fazer.

2º - Esse é o mais simples, e é quase impossivel dar uma dica sem a resposta. No draw, é só colocar a função meioDaQuadra antes da mostraBolinha.

3º - Encontre o valor da borda, ou seja, quando a raquete fica colada nas bordas, qual o valor de y dessa raquete? Descubra esse valor, usando console.log por exemplo, e faça uma condição if, onde se o y da raquete for maior que o da borda, então ele continua com o seu eixo Y. Dessa forma, ele nunca vai ultrapassar, sempre vai esbarrar na condição. Vai dar um pouco de dor de cabeça de fazer, mas vale o esforço.

Espero ter ajudado, qualquer dúvida comenta ai, Valeu.

Olá Matheus!!! Muito obrigado por responder e me ajudar! Eu fiz as mudanças, agora as raquetes reconhecem as bordas e a linha, ja está por baixo da bolinha. Eu tambem mudei a chance de errar, e agr o oponente erra tbm, porém ele erra qnd ele está na minha frente somente. O código ficou assim: https://editor.p5js.org/nathanmaciel05/sketches/IUwzJ_WsW Será q se eu só mudar o valor das variaveis na função chanceErro, o erro do oponente passa a ser mais "orgânico", podendo errar a bolinha qnd está atrás de mim tbm e acertando qnd está na frente?

Sim, ai você pode fazer várias verificações e moldar o jogo da sua forma. Uma coisa que da pra fazer, se você quer que o jogo fique mais imprevisivel, é utilizar o método Math.round, não sei se já viu em algum curso, mas ele pega o parâmetro que você passa, e gera um valor aleatório cada vez que esse método é chamado. Daria pra usar esse número aleatório, por exemplo, toda vez que o jogo fica empatado, ou sei la, quando a bolinha bate na raquete do oponente, e como é aleatório, ele pode tanto não alterar nada, como alterar bastante, então não da pra saber. Você pode aplicar esse valor aleatório no y da Raquete do oponente por exemplo. Da uma pesquisada neste Math.round, que acho que da certo.

Pô Matheus, ja vi e usei o Math.round em outros cursos. Não tinha me lembrado dele, mto obrigado!!!