As vezes após alguns segundos do som tocando, ele fica distorcido e bugado, como se estivesse com lag ou algo do tipo. Também após alguns segundos do jogo funcionando normalmente, ao bater em alguma parede acontece este erro: Uncaught not ready to play file, buffer has yet to load. Try preload() (: line 2). Não consigo usar o ponto e vírgula igual o professor, por exemplo: let = velocidadeYOponente; apresenta o seguinte erro: Uncaught ReferenceError: velocidadeYOponente is not defined (sketch: line 17) porém se eu colocar let velocidadeYOponente = funciona. Da pra deixar assim ou pode rolar algum conflito? Sempre que a bola pega em cima ou em baixo da raquete ela entra pra dentro da raquete, acho que precisaria por algum tipo de colisão nessas áreas.
//Bolinha Tamanho
let = xBolinha = 300
let = yBolinha = 200
let = diametro = 20
let = raio = diametro / 2
//Bolinha Velocidade
let = velocidadeXBolinha = 7
let = velocidadeYBolinha = 7
//Raquete Tamanho
let = xRaquete = 5
let = yRaquete = 150
let = larguraRaquete = 20
let = alturaRaquete = 110
//Raquete Oponente
let = xRaqueteOponente = 575
let = yRaqueteOponente = 150
let = velocidadeYOponente =
//Sons
let = raquetada =
let = ponto =
let = trilha =
//Biblioteca
//let = colidiu = false
//Placar
let = pontosMeus = 0;
let = pontosOponente = 0;
function setup() {
createCanvas(600, 400);
trilha.loop();
}
function draw() {
background(0);
bolinha();
movimentosBolinha();
colisaoBorda();
tamanhoRaquete(xRaquete, yRaquete);
tamanhoRaquete(xRaqueteOponente, yRaqueteOponente);
movimentosRaquete();
//colisaoRaquete();
movimentarRaqueteOponente();
colisaoBiblioteca(xRaquete, yRaquete);
colisaoBiblioteca(xRaqueteOponente, yRaqueteOponente);
mostrarPlacar();
marcarPonto();
preload();
//correçaoDeBugs();
}
function bolinha(){
circle(xBolinha, yBolinha, diametro)
}
function movimentosBolinha(){
xBolinha += velocidadeXBolinha
yBolinha += velocidadeYBolinha
}
function colisaoBorda(){
if (xBolinha + raio > width ||
xBolinha - raio < 0){
velocidadeXBolinha *= -1
}
if (yBolinha + raio > height ||
yBolinha - raio< 0){
velocidadeYBolinha *= -1
}
}
function tamanhoRaquete(x, y){
rect(x, y, larguraRaquete, alturaRaquete)
}
function movimentosRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10
}
}
function movimentarRaqueteOponente(){
velocidadeYOponente = yBolinha - yRaqueteOponente - alturaRaquete / 2 - 30
yRaqueteOponente += velocidadeYOponente
}
function colisaoRaquete(){
if (xBolinha - raio < xRaquete + larguraRaquete
&& yBolinha - raio < yRaquete + alturaRaquete
&& yBolinha + raio > yRaquete - alturaRaquete
){
velocidadeXBolinha *= -1
raquetada.play();
}
}
function colisaoBiblioteca(x, y){
colidiu = collideRectCircle(x, y, larguraRaquete, alturaRaquete, xBolinha, yBolinha, diametro);
if (colidiu){
velocidadeXBolinha *= -1
raquetada.play();
}
}
function correçaoDeBugs(){
if (yRaquete > 0 &&
yRaquete + alturaRaquete < 400){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10
}
if (yRaquete < 0){
yRaquete += 1
}
if (yRaquete + alturaRaquete > 400){
yRaquete -= 1
}
}
}
function correçaoDeBugs(){
if(yRaquete > 0 &&
yRaquete + alturaRaquete < 400) {
if (keyIsDown(UP_ARROW)) {
yRaquete -= 10;
};
if (keyIsDown(DOWN_ARROW)) {
yRaquete += 10;
};
}
if(yRaquete <= 0) {
yRaquete += 1; }
if(yRaquete + alturaRaquete >= 400) {
yRaquete -= 1; }
}
function mostrarPlacar(){
textAlign(CENTER);
textSize(16);
fill(color(0, 128, 0))
rect(430, 10, 40, 20);
fill(255)
text(pontosOponente, 450, 26)
fill(color(0, 128, 0))
rect(129, 10, 40, 20);
fill(255)
text(pontosMeus, 150, 26)
}
function marcarPonto(){
if (xBolinha + raio > 600){
pontosMeus += 1
ponto.play();
}
if (xBolinha - raio < 0){
pontosOponente += 1
ponto.play();
}
}
function preload(){
trilha = loadSound("trilha.mp3")
raquetada = loadSound("raquetada.mp3")
ponto = loadSound("ponto.mp3")
}