Boa noite, estou tendo duas dificuldades que creio eu, estejam interligadas. A primeira é que minha "raquete" fica saindo para fora da tela. E a segunda, é que com mesmo com o código proposto pelo instrutor, o oponente fica impossivel de fazer ponto. Ai esta meu código, desde já agradeço!
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2;
let xRaquete = 5;
let yRaquete = 150;
let raquetecomprimento = 10;
let raquetealtura = 90;
let xOponente = 585;
let yOponente = 150
let velocicadeyOponente;
let colidiu = false;
let meuspontos = 0
let pontosdooponente = 0
let chanceDeErrar = 0;
let velocidadedabolinha = 5;
let velocidadeYdabolinha = 5;
//sons
let raquetada;
let ponto;
let trilha;
function preload(){
trilha = loadSound("trilha sonora.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquete.mp3");
}
function setup() {
createCanvas(600, 400);
trilha.loop();
}
function draw() {
background(0);
mostrabolinha();
movimenta();
//colisaoborda();
raquete(xRaquete, yRaquete);
movimentaraquete();
raquete(xOponente, yOponente);
//movimentaoponente();
colisao(xRaquete, yRaquete);
colisao(xOponente, yOponente);
placar();
marcaponto();
}
function mostrabolinha(){
circle(xBolinha, yBolinha, diametro);
}
function movimenta(){
if(xBolinha + raio > width || xBolinha - raio < 0){
velocidadedabolinha *= -1
}
else if(yBolinha + raio > height || yBolinha - raio < 0){
velocidadeYdabolinha *= -1
}
}
function colisaoborda(){
xBolinha += velocidadedabolinha;
yBolinha += velocidadeYdabolinha;
}
function raquete(x,y){
rect(x, y, raquetecomprimento, raquetealtura);
}
function movimentaraquete(){
if(keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if(keyIsDown(DOWN_ARROW)){
yRaquete += 10;
}
}
function movimentaoponente(){
velocidadeyOponente = yBolinha - yOponente - raquetecomprimento / 2 - 30;
yOponente += velocidadeyOponente + chanceDeErrar
calculaChanceDeErrar();
}
function colisao(x,y){
let colidiu = collideRectCircle(x, y, raquetecomprimento, raquetealtura, xBolinha, yBolinha, raio);
if (colidiu){
velocidadedabolinha *= -1
raquetada.play();
}
}
function placar(){
textAlign(CENTER)
textSize(20);
stroke(220);
//cor dos contadores
fill(color(0,191,255));
rect(150, 10, 40, 20);
rect(450, 10, 40, 20);
stroke(0);
//cor do numero
fill(color(220));
text(pontosdooponente, 470, 26)
text(meuspontos, 170, 26)
//cor da raquete
fill(color(75,0,130));
}
function marcaponto(){
if(xBolinha > 590){
meuspontos += 1
ponto.play();
}
if(xBolinha < 10){
pontosdooponente += 1
ponto.play();
}
}
function calculaChanceDeErrar() {
if (pontosdooponente >= meuspontos) {
chanceDeErrar += 1
if (chanceDeErrar >= 39){
chanceDeErrar = 40
}
} else {
chanceDeErrar -= 1
if (chanceDeErrar <= 35){
chanceDeErrar = 35
}
}
}
function bolinhaNaoFicaPresa(){
if (XBolinha - raio < 0){
XBolinha = 23
}
}