5
respostas

loading infinito

olá! depois que eu tentei colocar os sons o jogo fica em um loading infinito na pagina, quando apago as linhas de código ele volta. Tenho que fazer alguma coisa por ter codado no vsCode ? ou é algum erro no código ? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

// Bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2;

//velocidade da Boliha
let velocidadeX = 7;
let velocidadeY = 7;

// Raquete
let xRect = 5;
let yRect = 150;
let comprimentoRect = 5;
let alturaRect = 90;

// Raquete Maquina
let xRectMaquina = 590;
let yRectMaquina = 150;
let comprimentoRectMaquina = 5;
let alturaRectMaquina = 90;

//velocidade da Raquete Maquina
let velocidadeXMaquina = 10;
let velocidadeYMaquina = 10;

let colidiu = false;

//Placar
let meusPontos = 0;
let pontosMaquina = 0;

// sons d0 jogo
let ponto;
let raquetada;
let trilha;

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

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

function draw() {
  background(0);
  bolinha();
  raquete(xRect, yRect);
  raquete(xRectMaquina, yRectMaquina);
  movimentaBolinha();
  movimentaRaquete();
  movimentaRaqueteMaquina();
  verificaColisaoBorda();
  //verificaColisaoRaquete();
  verificaColisaoRaquete(xRect, yRect);
  verificaColisaoRaquete(xRectMaquina, yRectMaquina);
  incluiPlacar();
  marcaPonto();
}

function bolinha() {
  circle(xBolinha, yBolinha, diametro);
}
function raquete(x, y) {
  rect(x, y, comprimentoRect, alturaRect);
}
function movimentaBolinha() {
  xBolinha += velocidadeX;
  yBolinha += velocidadeY;
}
function movimentaRaquete() {
  if (keyIsDown(UP_ARROW)) {
    yRect -= 10;
  }
  if (keyIsDown(DOWN_ARROW)) {
    yRect += 10;
  }
}
function movimentaRaqueteMaquina() {
  if (keyIsDown(87)) {
    yRect -= 10;
  }
  if (keyIsDown(83)) {
    yRect += 10;
  }
  //versao Máquina
  /*velocidadeYMaquina =
    yBolinha - yRectMaquina - comprimentoRectMaquina / 2 - 80;
  yRectMaquina += velocidadeYMaquina;*/
}
function verificaColisaoBorda() {
  if (xBolinha + raio > width || xBolinha - raio < 0) {
    velocidadeX *= -1;
  }

  if (yBolinha + raio > height || yBolinha - raio < 0) {
    velocidadeY *= -1;
  }
}
/*function verificaColisaoRaquete() {
  if (
    xBolinha - raio < xRect + comprimentoRect &&
    yBolinha - raio < yRect + alturaRect &&
    yBolinha + raio > yRect
  ) {
    velocidadeX *= -1;
  }
}*/
function verificaColisaoRaquete(x, y) {
  colidiu = collideRectCircle(
    x,
    y,
    comprimentoRect,
    alturaRect,
    xBolinha,
    yBolinha,
    raio
  );
  if (colidiu) {
    velocidadeX *= -1;
    raquetada.play();
  }
}
function incluiPlacar() {
  stroke(255);
  textAlign(CENTER);
  textSize(16);
  fill(color(0, 0, 255));
  rect(150, 10, 40, 20);
  fill(255);
  text(meusPontos, 170, 26);
  fill(color(0, 0, 255));
  rect(450, 10, 40, 20);
  fill(255);
  text(pontosMaquina, 470, 26);
}
function marcaPonto() {
  if (xBolinha > 590) {
    meusPontos += 1;
    ponto.play();
  }
  if (xBolinha < 10) {
    pontosMaquina += 1;
    ponto.play();
  }
}
5 respostas

Faltou o sons/ antes do arquivo raquetada.mp3, verifica se isso não resolve o problema.

continua!

Onde vc ta rodando o game? A funcao draw funciona da mesma forma do que no p5.js será? No p5.js ela se atualiza a cada novo processo. Pode ser pelo fato de estar no Vs code msm. Como o jogo roda antes de jogar os sons?

estou pelo p5.js e estou com o mesmo problema.

Olá Gustavo. Fiz algumas mudanças, e seu jogo voltou a funcionar. -Primeiramente, comente todo o som do jogo. O seu som está bugado. Aconselho-te a refazer o audio do jogo novamente, fazer upload de tudo novamente. Mas antes, vamos por parte.

-comprimento raquete mudei para 10

-velocidadeXMaquina e velocidadeYMaquina, deixe sem valores, apenas ponto e vírgula.

-A function movimentaRaqueteMaquina() , não funciona, na verdade funciona as duas com o mesmo comando! Vc usou o yRect que pertence a minhaRaquete e usou na função da movimentaRaqueteMaquina().

yRect trocar na função movimentaRaqueteMaquina() por yRaquete

-O áudio de raquetada está sem o caminho da pasta?

raquetada = loadSound("????raquetada.mp3"); tens que add o caminho "sons" .

Veja a img abaixo, seu jogo roda, mas sem áudio!! pode ser que este detalhe do caminho do áudio raquetada, pode voltar ao normal o som, corrigindo-o. Deixe ele por último, faça um por vez e salve!!! O código que se segue, está corrigido, porém, aconselho vc, a corrigir por partes e observar seus erros. Use o código que passei para comparar, e não copiar e colar, porque senão, eu não estarei lhe ajudando, e nem vc a si mesmo!!!!!! Boa sorte!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//Bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2;

//velocidade da Boliha
let velocidadeX = 7;
let velocidadeY = 7;

// Raquete
let xRect = 5;
let yRect = 150;
let comprimentoRect = 10;
let alturaRect = 90;

// Raquete Maquina
let xRectMaquina = 590;
let yRectMaquina = 150;
let comprimentoRectMaquina = 10;
let alturaRectMaquina = 90;

//velocidade da Raquete Maquina
let velocidadeXMaquina;
let velocidadeYMaquina;

let colidiu = false;

//Placar
let meusPontos = 0;
let pontosMaquina = 0;

// sons d0 jogo
//let ponto;
//let raquetada;
//let trilha;

function preLoad() {
 // trilha = loadSound("sons/trilha.mp3");
 // ponto = loadSound("sons/ponto.mp3");
 // raquetada = loadSound("sons/raquetada.mp3");
}

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

function draw() {
  background(0);
  bolinha();
  raquete(xRect, yRect);
  raquete(xRectMaquina, yRectMaquina);
  movimentaBolinha();
  movimentaRaquete();
  movimentaRaqueteMaquina();
  verificaColisaoBorda();
  //verificaColisaoRaquete();
  verificaColisaoRaquete(xRect, yRect);
  verificaColisaoRaquete(xRectMaquina, yRectMaquina);
  incluiPlacar();
  marcaPonto();
}

function bolinha() {
  circle(xBolinha, yBolinha, diametro);
}
function raquete(x, y) {
  rect(x, y, comprimentoRect, alturaRect);
}
function movimentaBolinha() {
  xBolinha += velocidadeX;
  yBolinha += velocidadeY;
}
function movimentaRaquete() {
  if (keyIsDown(UP_ARROW)) {
    yRect -= 10;
  }
  if (keyIsDown(DOWN_ARROW)) {
    yRect += 10;
  }
}
function movimentaRaqueteMaquina() {
  if (keyIsDown(87)) {
    yRect -= 10;
  }
  if (keyIsDown(83)) {
    yRect += 10;
  }

  //versao Máquina
  /*velocidadeYMaquina =
    yBolinha - yRectMaquina - comprimentoRectMaquina / 2 - 80;
  yRectMaquina += velocidadeYMaquina;*/
}
function verificaColisaoBorda() {
  if (xBolinha + raio > width || xBolinha - raio < 0) {
    velocidadeX *= -1;
  }

  if (yBolinha + raio > height || yBolinha - raio < 0) {
    velocidadeY *= -1;
  }
}
/*function verificaColisaoRaquete() {
  if (
    xBolinha - raio < xRect + comprimentoRect &&
    yBolinha - raio < yRect + alturaRect &&
    yBolinha + raio > yRect
  ) {
    velocidadeX *= -1;
  }
}*/
function verificaColisaoRaquete(x, y) {
  colidiu = collideRectCircle(x,y,comprimentoRect,alturaRect, xBolinha,yBolinha,raio );
  if (colidiu) {
    velocidadeX *= -1;
    //raquetada.play();
  }
}
function incluiPlacar() {
  stroke(255);
  textAlign(CENTER);
  textSize(16);
  fill(color(0, 0, 255));
  rect(150, 10, 40, 20);
  fill(255);
  text(meusPontos, 170, 26);
  fill(color(0, 0, 255));
  rect(450, 10, 40, 20);
  fill(255);
  text(pontosMaquina, 470, 26);
}
function marcaPonto() {
  if (xBolinha > 590) {
    meusPontos += 1;
    //ponto.play();
  }
  if (xBolinha < 10) {
    pontosMaquina += 1;
    //ponto.play();
  }
}