1
resposta

Ajuda

Esta dando um erro no meu jogo em relação a comprimento. alguém poderia me ajudar, por favor

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

//velocidade
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;

//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;

//variáveis do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;


let colidiu = false;

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

function draw() {
    background(0);
    mostraBolinha();
    //movimentaBolinha();
    verificaColisaoBorda();
    mostraRaquete(xRaquete, yRaquete);
    movimentaMinhaRaquete();
    verificaColisaoRaquete();
    colisaoMinhaRaqueteBiblioteca();
    mostraRaquete(xRaqueteOponente, yRaqueteOponente);
}


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

function movimentaBolinha() {
    xBolinha += velocidadeXBolinha;
    yBolinha += velocidadeYBolinha;
}

function verificaColisaoBorda() {
    if (xBolinha + raio > width || xBolinha - raio < 0) {
        velocidadeXBolinha *= -1;
    }
    if (yBolinha + raio > height || yBolinha - raio < 0) {
        velocidadeYBolinha *= -1;
    }
}

function mostraRaquete(x,y) {
    rect(x, y, raqueteComprimento, raqueteAltura);
}

function mostraRaqueteOponente() {
    rect(xRaqueteOponente, yRaqueteOponente, raqueteComprimento, raqueteAltura);
}

function movimentaMinhaRaquete() {
    if (keyIsDown(UP_ARROW)) {
        yRaquete -= 10;
    }
    if (keyIsDown(DOWN_ARROW)) {
        yRaquete += 10;
    }
}

function verificaColisaoRaquete() {
    if (xBolinha - raio < xRaquete + raqueteComprimento
        && yBolinha - raio < yRaquete + raqueteAltura
        && yBolinha + raio > yRaquete) {
        velocidadeXBolinha *= -1;
    }
}

function colisaoMinhaRaqueteBiblioteca() {
    colidiu = collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
    if (colidiu) {
        velocidadeXBolinha *= -1;
    }
}
1 resposta

Olá Felipe, tudo bem por aí?

Primeiramente, gostaria de lhe agradecer pela paciência em aguardar um retorno aqui no fórum.

Testei seu código e percebi dois pequenos erros de organização.

O dois erros estão nessa function aqui:


function mostraRaquete(x,y) {

rect(x, y, raqueteComprimento, raqueteAltura);

}

Na parte inferior da tela de edição você verá uma caixa vazia, que ao dar play no seu código aparecerá essa mensagem de erro:


ReferenceError: raqueteComprimento is not defined

at /sketch.js:58:16

p5.js says:

[sketch.js, line 58] "raqueteComprimento" is not defined in the current scope. If you have defined it in your code, you should check its scope, spelling, and letter-casing (JavaScript is case-sensitive).

+ More info: https://p5js.org/examples/data-variable-scope.html

┌[blob:https://preview.p5js.org/b8f6f2da-363f-4923-9800-2805ad7fd03d:58:16]

Error at line 58 in mostraRaquete()

└[blob:https://preview.p5js.org/b8f6f2da-363f-4923-9800-2805ad7fd03d:31:5]

Called from line 31 in draw()

Nas primeiras linhas está escrito o seguinte: ReferenceError: raqueteComprimento is not defined

at /sketch.js:58:16, Essa mensagem está mostrando que existe um erro que está no código raqueteComprimento, e que a parte em questão não possui definição, bem com informa também que o erro está na página de sketch.js, na linha 58, no intervalo 16.

Essa é a forma de leitura desse tipo de erro, e o que aconteceu foi o fato de não haver uma variável com um valor para ser atribuído naquele local.

Para consertar isso é necessário "scrollar" a página até o topo da tela de edição, ir na área de //variáveis da raquete e criar essas 2 functions com os respectivos valores como mostrado abaixo:


let raqueteComprimento = 10;

let raqueteAltura = 90;

E com isso o erro será consertado, então é somente "descomentar" a function movimentaBolinha(); na function draw().

Com essas correções o seu código estará corrigido e pronto para ser continuado.

Era isso, espero ter ajudado, e caso surjam mais dúvidas recorra ao nosso fórum, pois ficaremos muito felizes em poder lhe ajudar.

Um grande abraço, e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.