meu projeto ---> https://editor.p5js.org/KBaltar/sketches/UiF3PAbnp
Opa Anderson, tudo ok por aí ?
Desde já peço desculpas pela demora em obter um retorno!
Eu consegui resolver seu problema com o código, vou deixar abaixo como foi feito a resolução:
Primeiramente parabéns pelo projeto ele está muito bem organizado e indentado.
direcaoRaquete2
com o valor de 1;function movimentaRaquetePlayer2()
o que eu fiz com ela foi o seguinte:mediaYBolinha
e atribui o valor deyBolinha + raio
para ela;mediaYRaquete2
para ela eu coloquei yRaquete2 + (alturaRaquete/2)
como valor;if else
) e coloquei como condição para o if (mediaYBolinha > mediaYRaquete2)
e se isso fosse verdadeiro então a direção da segunda raquete seria de 1 (direcaoRaquete2 = 1
);else
) eu coloquei que a direção da raquete seria de -1 (direcaoRaquete2 = -1
);function
eu atribui para yRaquete2
que ela fosse ela mais 5 (yRaquete2 += 5
) e depois multipliquei isso por random(0.6, 0.95)
e também por direcaoRaquete2
.No final o código ficou assim:
let direcaoRaquete2 = 1;
function movimentaRaquetePlayer2(){
const mediaYBolinha = yBolinha + raio;
const mediaYRaquete2 = yRaquete2 + (alturaRaquete/2);
if (mediaYBolinha > mediaYRaquete2) {
direcaoRaquete2 = 1;
} else {
direcaoRaquete2 = -1;
}
yRaquete2 += 5 * random(0.6, 0.95) * direcaoRaquete2;
}
E assim substituindo esse código acima no lugar da function movimentaRaquetePlayer2()
original ele irá permitir que o oponente erre.
Em síntese era isso caso tenha dúvidas recorra ao fórum novamente!
Estarei à disposição.
Um abraço e bons estudos!
Olá Renan! Obrigado pela resolução! Fiz as modificações e deu certo.
Eu entendi a lógica das modificações feitas, com exceção da função "random". Eu li a documentação no P5JS e vi que com ela você trabalha com números aleatórios, mas não consegui pegar o raciocínio de como eu implemento ela no meu código. Você poderia dar uma breve explicação ou iremos ver isso no curso a frente?
Oi gente, tudo bem?
Eu estou tentado atráves de vários códigos aqui nos forúns fazer o oponente errar e nada deu certo, nem o que o professor ensina na aula com o código "chanceDeErrar", nem com essa sugestão do Renan, no meu código ao tentar incluir essa sugestão daqui a raquete do oponente vai para baixo e não volta mais.
Aqui está o meu código: https://editor.p5js.org/357ninda/sketches/wj0k2zrpb
Se puderem me ajudar a entender o que estou fazendo de errado :P
Opa pessoal, tudo bem?
@Amanda, para que eu possa te ajudar de forma individual, direta e com as particularidades que seu código fornece, peço que abra um novo tópico, dessa forma, poderei te ajudar de forma mais direcionada, você pode fazer isso diretamente por meio desse link:
@ANDERSON KEVIN ARAUJO BALTAR, quanto a função "random" que foi utilizada, no código para lhe ajudar, ela tem como objetivo gerar um numero aleatório entre os números que estão entre parênteses (0.6, 0.95
) que no caso são os limites mínimos e máximos que podem ser gerados.
Ele foi utilizado no código para que quando o JavaScript fizer o calculo que foi atribuido nas constantes:
const mediaYBolinha = yBolinha + raio;
const mediaYRaquete2 = yRaquete2 + (alturaRaquete/2);
E a verificação feita no if
:
if (mediaYBolinha > mediaYRaquete2) {
direcaoRaquete2 = 1;
} else {
direcaoRaquete2 = -1;
}
E gerar um novo valor para a variável direçãoRaquete2
, ele gere um numero para o valor no eixo y da raquete.
Após esses cálculos, verificações e atribuições ele irá ter um valor gerado para o yRaquete2
, e um outro valor para a direcaoRaquete2
.
Com esses valores será feito um complemento usando a soma do yRaquete2
mais o valor de 5, e este que será multiplicado por random
com suas limitações(0.6, 0.95
) e por fim também será multiplicado por direcaoRaquete2
para que o calculo tenha sentido e se mantenha constante de forma que não ultrapasse o limite o eixo y do plano cartesiano usado no jogo, e ao mesmo tempo ele busque se manter no mesmo valor do eixo y da bolinha e tenha um delay que permita o acerto por parte do jogador.
Em suma era isso, caso ainda tenha dúvidas recorra ao fórum novamente!
Um grande abraço e bons estudos.