Bom dia Guys!
Gostaria de tirar algumas duvidas referente ao codigo:
1) Nao consigo fazer pontuacao no oponente, como ajustar isso? 2) As vezes a bola fica travada atras da raquete marcando pontos repetitivamente, como resolver? 3) A raquete ultrapassa da altura total do topo e da parte debaixo, como ajustar?
Segue abaixo o codigo:
//placar
let meusPontos = 0
let pontosOponente = 0
//variaveis da bolinha
let xBolinha = 300
let yBolinha = 200
let diametro = 16
let raio = diametro / 2
//velocidade da bolinha
let velocidadeXBolinha = 6
let velocidadeYBolinha = 6
//variaveis usuario
let xRaquete = 5
let yRaquete = 170
let colidiu = false
//variaveis oponente
let xRaqueteOponente = 590
let yRaqueteOponente = 170
let velocidadeYOponente;
let colidiuOponente = false
let raqueteComprimento = 5
let raqueteAltura = 60
function setup() {
createCanvas(600, 400)
}
function draw() {
background(0)
mostraBolinha()
movimentaBolinha()
verificaColisaoBordaBolinha()
criaRaquete(xRaquete,yRaquete)
movimentaRaquete()
criaRaquete(xRaqueteOponente,yRaqueteOponente)
movimentaRaqueteOponente()
verificaColisaoRaquete(xRaquete, yRaquete)
verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente)
/*
verificaColisaoRaquete()
*/
incluiPlacar()
marcaPonto()
}
function mostraBolinha() {
circle(xBolinha,yBolinha,diametro)
}
function movimentaBolinha() {
xBolinha += velocidadeXBolinha
yBolinha += velocidadeYBolinha
}
function verificaColisaoBordaBolinha() {
if( xBolinha + raio > width || xBolinha - raio < 0) {
velocidadeXBolinha *= -1
}
if( yBolinha + raio > height || yBolinha - raio < 0) {
velocidadeYBolinha *= -1
}
}
function criaRaquete(x, y) {
rect( x, y, raqueteComprimento, raqueteAltura);
}
function movimentaRaquete() {
if (keyIsDown(UP_ARROW))
yRaquete += -6;
if (keyIsDown(DOWN_ARROW))
yRaquete += 6;
}
function movimentaRaqueteOponente() {
velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 60
yRaqueteOponente += velocidadeYOponente
}
function verificaColisaoRaquete(x, y) {
colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio)
if(colidiu)
velocidadeXBolinha *= -1
}
function incluiPlacar() {
stroke(255)
textAlign(CENTER)
textSize(20)
fill(255,165,0)
rect(130, 9, 40, 20)
fill(255)
text(meusPontos, 150, 26)
fill(255,165,0)
rect(430, 9, 40, 20)
fill(255)
text(pontosOponente, 450, 26)
}
function marcaPonto() {
if( xBolinha > 590 ) {
meusPontos++
}
if( xBolinha < 10 ) {
pontosOponente++
}
}
/*
function verificaColisaoRaquete() {
if( xBolinha - raio < xRaquete + raqueteComprimento
&& yBolinha - raio < yRaquete + raqueteAltura
&& yBolinha + raio > yRaquete) {
velocidadeXBolinha *= -1
}
}
*/