quando coloco o som do ponto para tocar quando a bolinha é menor do que o valor do meu eixo X, o som buga e fica tocando sem parar. OBS : minha solução foi colocar o som para tocar quando a bolinha toca o limite da minha WIDTH, em "colisãoparede ".
let xbolinha = 150 let ybolinha = 200 let dbolinha = 13 let raio = dbolinha / 2 // let movimentoxbolinha = 6 let movimentoybolinha = 6 // let xraquete = 10 let yraquete = 150 let lraquete = 9 let araquete = 50 // let xraqueteo = 380 let yraqueteo = 150 let movimentoyro; // let pontos = 0 let pontoso = 0
//importação let colidiu = false
// sons let raquetada let ponto let trilha
function preload (){ trilha = loadSound ("trilha.mp3") ponto = loadSound ( "ponto.mp3") raquetada = loadSound ("raquetada.mp3") }
function setup() { createCanvas(400, 300); trilha . loop ()}
function draw() { background(0); bolinha () movimentobolinha () colisaoparede () raquete (xraquete, yraquete) raquete (xraqueteo,yraqueteo) movimentoraquete () // movimentooponente() // colisaoraquete (xraquete,yraquete) nao conseguir fazer a colisao sem a importação // colisaoraquete (xraqueteo,yraqueteo) colisaoimportada (xraquete,yraquete) colisaoimportada (xraqueteo,yraqueteo) placar () addpontos ()
} function bolinha (){ circle ( xbolinha, ybolinha,dbolinha ) } function movimentobolinha (){ xbolinha += movimentoxbolinha ybolinha += movimentoybolinha }
function colisaoparede (){ if (xbolinha + raio > width || xbolinha - raio < 0){ movimentoxbolinha *= -1 ponto.play () } if(ybolinha + raio > height || ybolinha - raio < 0){ movimentoybolinha *= -1 } } function raquete (x,y){ rect ( x, y , lraquete, araquete) } function movimentoraquete (){ if (keyIsDown(UP_ARROW)){ yraquete -= 10} if (keyIsDown(DOWN_ARROW)){ yraquete += 10} } function colisaoraquete (x,y){ if (xbolinha - raio < x + lraquete && ybolinha - raio < y + araquete && ybolinha + raio > y ){ movimentoxbolinha *= -1 raquetada.play () } } function colisaoimportada (x,y){ colidiu = collideRectCircle(x,y,lraquete,araquete,xbolinha,ybolinha,dbolinha) if (colidiu) { { movimentoxbolinha *= -1 raquetada.play () } } } function movimentooponente(){ movimentoyro = ybolinha - yraqueteo - lraquete / 2 - 30 yraqueteo += movimentoyro}
function placar (){ stroke ( 255 ) textAlign(CENTER) textSize ( 16 ) fill (color(255,140,0)) rect ( 85 , 6, 30 , 20 ) fill ( 255) text ( pontos , 100, 20) fill (color( 255,140,0 )) rect ( 285, 6 , 30,20) fill ( 255 ) text ( pontoso , 300, 20)
}
function addpontos (){ if ( xbolinha + raio > 400 ) { pontos += 1 // ponto.play () } if ( xbolinha - raio < 0){ pontoso += 1} // ponto.play () }