1
resposta

chance de errar....ajuda

ola

por alguma razao nao consigo implementar o codigo de chance de errar, fiz como no passo a passo , mas nao obtive resultado

//variaveis da Bolinha
let xBolinha = 400;
let yBolinha = 250;
let diamBolinha = 15;
let raioBolinha = diamBolinha / 2 ;

//velocidade da Bolinha
let xspeedBolinha = 6;
let yspeedBolinha = 6;

// Variavies da Raquete
let xRaquete = 5
let yRaquete = 150
let raqueteComprimento = 10
let raqueteAltura = 90
let colidiu = false;

// Variaveis da Raquete Oponente
let xRaqueteOponente = 585
let yRaqueteOponente = 150
let VelocidadeYOponente

// Placar do Jogo
let pontosCasa = 0;
let pontosFora = 0;

// Sons do Jogo
let raquetada
let ponto
let trilha

// chance De Errar
let chanceDeErrar = 0;


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

}


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

function draw() {
  background(0);
  mostraBolinha();
  movimentoBolinha();
  colisaoBolinha();
  mostraraquete(xRaquete, yRaquete);
  MovemyRaquete();
  //ColisaoRaquete();
  VerificaColisaoRaquete(xRaquete, yRaquete);
  VerificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
  mostraraquete(xRaqueteOponente, yRaqueteOponente);
  moveRaqueteoponente();
  Marcador();
  MarcaPonto();
  bolinhaNaoFicaPresa();
}

function bolinhaNaoFicaPresa(){
    if (xBolinha - raioBolinha < 0){
    xBolinha = 23
    }
}


function Marcador(){
  stroke(255)
  textAlign (CENTER)
  textSize (20)
  fill(color(255, 140, 0));
  rect (150,10, 40, 20)
  fill(255)
  text (pontosCasa,170, 26)
  fill(color(255, 140, 0));
  rect ( 450, 10, 40, 20)
  fill(255)
  text (pontosFora, 470, 26)


}

function MarcaPonto (){

  if (xBolinha > 595) {
      pontosCasa +=1;
    ponto.play();
      }
  if (xBolinha < 10){pontosFora +=1;
     ponto.play();                

      }
}


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

function movimentoBolinha(){
  xBolinha += xspeedBolinha
  yBolinha += yspeedBolinha
}

function colisaoBolinha (){
    if (xBolinha + raioBolinha> width ||
     xBolinha - raioBolinha< 0){
    xspeedBolinha *= -1;
  }
  if (yBolinha + raioBolinha> height ||
     yBolinha - raioBolinha< 0){
    yspeedBolinha *= -1;
  }
}

function mostraraquete (x, y){rect(x, y, raqueteComprimento, raqueteAltura);

}


function MovemyRaquete (){

if (keyIsDown(UP_ARROW)){yRaquete -= 10;}

  if (keyIsDown(DOWN_ARROW)){yRaquete += 10;}
}

function  moveRaqueteoponente(){
  VelocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento /2 - 30
  yRaqueteOponente += VelocidadeYOponente + chanceDeErrar
  calculachanceDeErrar()
}

function calculaChanceDeErrar() {
  if (pontosCasa >= pontosFora) {
    chanceDeErrar += 1
    if (chanceDeErrar >= 39){
    chanceDeErrar = 40
    }
  } else {
    chanceDeErrar -= 1
    if (chanceDeErrar <= 35){
    chanceDeErrar = 35
    }
  }
}


function ColisaoRaquete (){
if (xBolinha - raioBolinha < xRaquete + raqueteComprimento && yBolinha - raioBolinha < yRaquete + raqueteAltura && yBolinha + raioBolinha > yRaquete)
  xspeedBolinha *= -1;
  raquetada.play();

}

function VerificaColisaoRaquete(x, y){
  colidiu= collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raioBolinha);
  if (colidiu){
    xspeedBolinha *= -1;
    raquetada.play();
  }
}
1 resposta

Oi oi, Douglas! Como você está?

Verifiquei seu código e pude observar que você declarou a função calculaChanceDeErrar() mas chamou como calculachanceDeErrar(), e apenas por essa letra minúscula o interpretador não entendeu a referência :)

Outro ponto é que você fechou o escopo da função em um local equivocado e isso gerou um conflito de informações nas estruturas condicionais.

Vou deixar o código corrigido para você dar uma olhada, tudo bem?

//variaveis da Bolinha
let xBolinha = 400;
let yBolinha = 250;
let diamBolinha = 15;
let raioBolinha = diamBolinha / 2 ;

//velocidade da Bolinha
let xspeedBolinha = 6;
let yspeedBolinha = 6;

// Variavies da Raquete
let xRaquete = 5
let yRaquete = 150
let raqueteComprimento = 10
let raqueteAltura = 90
let colidiu = false;

// Variaveis da Raquete Oponente
let xRaqueteOponente = 585
let yRaqueteOponente = 150
let VelocidadeYOponente

// Placar do Jogo
let pontosCasa = 0;
let pontosFora = 0;

// Sons do Jogo
let raquetada
let ponto
let trilha

// chance De Errar
let chanceDeErrar = 0;


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

}


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

function draw() {
  background(0);
  mostraBolinha();
  movimentoBolinha();
  colisaoBolinha();
  mostraraquete(xRaquete, yRaquete);
  MovemyRaquete();
  //ColisaoRaquete();
  VerificaColisaoRaquete(xRaquete, yRaquete);
  VerificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
  mostraraquete(xRaqueteOponente, yRaqueteOponente);
  moveRaqueteoponente();
  Marcador();
  MarcaPonto();
  bolinhaNaoFicaPresa();
}

function bolinhaNaoFicaPresa(){
    if (xBolinha - raioBolinha < 0){
    xBolinha = 23
    }
}


function Marcador(){
  stroke(255)
  textAlign (CENTER)
  textSize (20)
  fill(color(255, 140, 0));
  rect (150,10, 40, 20)
  fill(255)
  text (pontosCasa,170, 26)
  fill(color(255, 140, 0));
  rect ( 450, 10, 40, 20)
  fill(255)
  text (pontosFora, 470, 26)


}

function MarcaPonto (){

  if (xBolinha > 595) {
      pontosCasa +=1;
    ponto.play();
      }
  if (xBolinha < 10){pontosFora +=1;
     ponto.play();                

      }
}


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

function movimentoBolinha(){
  xBolinha += xspeedBolinha
  yBolinha += yspeedBolinha
}

function colisaoBolinha (){
    if (xBolinha + raioBolinha> width ||
     xBolinha - raioBolinha< 0){
    xspeedBolinha *= -1;
  }
  if (yBolinha + raioBolinha> height ||
     yBolinha - raioBolinha< 0){
    yspeedBolinha *= -1;
  }
}

function mostraraquete (x, y){rect(x, y, raqueteComprimento, raqueteAltura);

}


function MovemyRaquete (){

if (keyIsDown(UP_ARROW)){yRaquete -= 10;}

  if (keyIsDown(DOWN_ARROW)){yRaquete += 10;}
}

function  moveRaqueteoponente(){
  VelocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento /2 - 30
  yRaqueteOponente += VelocidadeYOponente + chanceDeErrar
  calculaChanceDeErrar()
}

function calculaChanceDeErrar() {
  if (pontosCasa >= pontosFora) {
    chanceDeErrar += 1 }


    if (chanceDeErrar >= 39){
    chanceDeErrar = 40
    }

    if (chanceDeErrar <= 35){
    chanceDeErrar = 35
    }

}


function ColisaoRaquete (){
if (xBolinha - raioBolinha < xRaquete + raqueteComprimento && yBolinha - raioBolinha < yRaquete + raqueteAltura && yBolinha + raioBolinha > yRaquete)
  xspeedBolinha *= -1;
  raquetada.play();

}

function VerificaColisaoRaquete(x, y){
  colidiu= collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raioBolinha);
  if (colidiu){
    xspeedBolinha *= -1;
    raquetada.play();
  }
}

Espero que tenha ajudado, um abraço e bons estudos!