1
resposta

Resolvido: Oponente invencível e bug bolinha atrás da raquete.

// Bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 15; let raio = diametro /2; let velocidadeXBolinha = +5; let velocidadeYBolinha = +5;

// Raquete let xRaquete = 5; let yRaquete = 150; let raqueteLargura = 10; let raqueteAltura = 70;

// Raquete Oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;

let colidiu = false

// Placar let meusPontos = 0; let pontosDoOponente = 0;

//sons let raquetada; let ponto; let trilha;

//DIFICULDADE let numeroDeRaquetadas = 0;

function preload(){ trilha = loadSound ("trilhaeletronica.mp3"); ponto = loadSound ("ponto.mp3"); raquetada = loadSound ("raquetada.mp3"); }

function setup(){ createCanvas(600, 400); trilha.loop(); }

function draw(){ background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete,yRaquete); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaquete(); movimentaRaqueteOponente(); //verificaColisaoRaquete(); colisaoRaqueteBiblioteca(xRaquete,yRaquete); colisaoRaqueteBiblioteca(xRaqueteOponente,yRaqueteOponente); incluiPlacar(); marcarPontos(); }

function mostraBolinha(){ circle(xBolinha,yBolinha,diametro); }

function movimentaBolinha(){ xBolinha += velocidadeXBolinha; yBolinha += velocidadeYBolinha; }

function verificaColisaoBorda(){ if (xBolinha > width - raio || xBolinha - raio < 0){ velocidadeXBolinha *= -1; } if (yBolinha > height - raio || yBolinha - raio < 0){ velocidadeYBolinha *= -1; } }

function mostraRaquete(x, y){ rect(x,y,raqueteLargura,raqueteAltura); }

function movimentaRaquete(){ if (keyIsDown(UP_ARROW)){ yRaquete -= 10; } if (keyIsDown(DOWN_ARROW)){ yRaquete += 10; } }

function movimentaRaqueteOponente(){ velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteLargura + (numeroDeRaquetadas * 1) yRaqueteOponente += velocidadeYOponente; }

function verificaColisaoRaquete(){ if (xBolinha - raio < xRaquete + raqueteLargura && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){ velocidadeXBolinha *= -1; raquetada.play(); } }

function colisaoRaqueteBiblioteca(x, y){ colidiu = collideRectCircle(x, y, raqueteLargura, raqueteAltura, xBolinha, yBolinha, raio); if (colidiu){ velocidadeXBolinha *= -1; raquetada.play(); numeroDeRaquetadas += 1; } }

function incluiPlacar(){ stroke(255); textAlign(CENTER); textSize(16); fill(color(255,140,0)); rect(130, 10, 40, 20); fill(255); text(meusPontos, 150, 26); fill(color(255,140,0)); rect(430, 10, 40, 20); fill(255); text(pontosDoOponente, 450, 26); }

function marcarPontos(){ if (xBolinha + raio > 600 ){ meusPontos += 1; ponto.play(); numeroDeRaquetadas = 0; xBolinha -= 20; } if (xBolinha - raio < 0){ pontosDoOponente += 1; ponto.play(); xBolinha += 20; } }

BAIXE OS CODIGOS: https://drive.google.com/file/d/1JNJoTrqWVFTItZL4IO7tnPP_sqYP0g1d/view?usp=sharing

1 resposta

Olá, Daniel! Tudo bom?

Muito show o seu projeto, obrigada por compartilhar sua solução conosco. Certamente irá ajudar outros alunos e sem dúvida desenvolverá suas habilidades!

Outra dica bacana é utilizar a ferramenta inserir bloco de código aqui do fórum. Assim seu código ficará indentado e possibilitará a verificação de erros com mais rapidez. Vou deixar também um link que redireciona para um tópico que ensina sua utilização: Link com tutorial para usar botão inserir bloco de código:

Parabéns novamente e bons estudos!