A minha bola fica tremendo no meio do mapa!
(Não sei como anexa video aqui)
(Cole o codigo no p5.js para visualizar)
// Variáveis da bola ↓
let X_Bola = 300;
let Y_Bola = 200;
let Diametro = 23;
let Raio = Diametro / 2;
// Velocidade da bola ↓
let Velocidade_X_Bola = 6;
let Velocidade_Y_Bola = 6;
// Variáveis da Raquete ↓
let X_Raquete = 5;
let Y_Raquete = 150;
let Comprimento_Raquete = 10;
let Altura_Raquete = 90;
let Colisão = false;
let colidiu = false
// Variaveis do Oponente
let X_Oponente = 585;
let Y_Oponente = 150;
let Velocidade_Y_Oponente;
// Todo o resto
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
Mostrar_Bola();
Movimento_Bola();
Colisão_Borda();
Mostrar_Raquete(X_Raquete,Y_Raquete);
Mostrar_Oponente(X_Oponente,Y_Oponente);
//Colisão_Raquete();
Verificar_Colisão_Raquete();
Colisão_Oponente();
Movimento_Raquete();
Mostrar_Oponente();
Movimento_Oponente();
}
function Mostrar_Bola() {
circle(X_Bola, Y_Bola, Diametro)
}
function Movimento_Bola() {
X_Bola += Velocidade_X_Bola;
Y_Bola += Velocidade_Y_Bola;
}
function Colisão_Borda() {
if (X_Bola + Raio > width || X_Bola - Raio < 0) {
Velocidade_X_Bola *= -1;
}
if (Y_Bola + Raio > height || Y_Bola - Raio < 0) {
Velocidade_Y_Bola *= -1;
}
}
function Mostrar_Raquete(x,y){
rect(x,y, Comprimento_Raquete, Altura_Raquete);
}
function Mostrar_Oponente(){
rect(X_Oponente, Y_Oponente, Comprimento_Raquete, Altura_Raquete);
}
function Movimento_Raquete() {
if (keyIsDown(UP_ARROW)) {
Y_Raquete -= 10;
}
if (keyIsDown(DOWN_ARROW)) {
Y_Raquete += 10;
}
}
//function Colisão_Raquete(){
if (X_Bola - Raio < X_Raquete + Comprimento_Raquete
&& Y_Bola - Raio < Y_Raquete + Altura_Raquete
&& Y_Bola + Raio > Y_Raquete){
Velocidade_X_Bola *= -1;
}
//}
function Verificar_Colisão_Raquete(x, y) {
Colidiu = collideRectCircle(x, y, Comprimento_Raquete, Altura_Raquete, X_Bola, Y_Bola, Raio);
if (Colidiu){
Velocidade_X_Bola *= -1;
}
}
function Colisão_Oponente() {
Colidiu = collideRectCircle(X_Oponente, Y_Oponente, Comprimento_Raquete, Altura_Raquete, X_Bola, Y_Bola, Raio);
if (Colidiu){
Velocidade_X_Bola *= -1;
}
}
function Movimento_Oponente(){
Velocidade_Y_Oponente = Y_Bola - Y_Oponente - Comprimento_Raquete / 2 -30
Y_Oponente += Velocidade_Y_Oponente
}