Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Minha bolinha desaparece quando bate na borda superior e depois de uns segundos volta.

//variáveis da bolinha
let xBolinha = 300
let yBolinha = 200
let diametro = 15
let raio = diametro / 2

//velocidade da bolinha
let velocidadexBolinha = 6
let velocidadeyBolinha = 6

function setup() {
  createCanvas(600, 400);
}

function draw() {
  background(0);
  mostraBolinha();
  velocidadeBolinha();
  verificarColisaoBorda();
}

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

function velocidadeBolinha(){
  xBolinha += velocidadexBolinha
  yBolinha += velocidadeyBolinha
}

function verificarColisaoBorda(){

if (xBolinha + raio > width ||
  xBolinha - raio< 0){
  velocidadexBolinha *= -1
}

if (yBolinha + raio > height ||
   xBolinha - raio < 0){
  velocidadeyBolinha *= -1
}
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
3 respostas
solução!

Olá Hilda,

O erro está no segundo if da função verificarColisaoBorda().

troque a variável xBolinha pela variável yBolinha:

toque:

if (yBolinha + raio > height ||
   xBolinha - raio < 0){
  velocidadeyBolinha *= -1
}

por:

if (yBolinha + raio > height ||
   yBolinha - raio < 0){
  velocidadeyBolinha *= -1
}

Hilda,

O código completo ficará da seguinte forma:

//variáveis da bolinha
let xBolinha = 300
let yBolinha = 200
let diametro = 15
let raio = diametro / 2

//velocidade da bolinha
let velocidadexBolinha = 6
let velocidadeyBolinha = 6

function setup() {
  createCanvas(600, 400);
}

function draw() {
  background(0);
  mostraBolinha();
  velocidadeBolinha();
  verificarColisaoBorda();
}

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

function velocidadeBolinha(){
  xBolinha += velocidadexBolinha
  yBolinha += velocidadeyBolinha
}

function verificarColisaoBorda(){

if (xBolinha + raio > width ||
  xBolinha - raio< 0){
  velocidadexBolinha *= -1
}

if (yBolinha + raio > height ||
   yBolinha - raio < 0){
  velocidadeyBolinha *= -1
}
}

Era isso mesmo! Obrigada!