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

Não consigo fazer a colisão no meu jogo

//Códigos relacionados ao personagem

//Posições x e y da Vaca
let xPersonagem = 900;
let yPersonagem = 855;
let colisao = false;

function mostraPersonagem() {
    image(imagemPersonagem, xPersonagem, yPersonagem, 70, 70);
}

function movimentaPersonagem() {
    if (keyIsDown(UP_ARROW)) {
        yPersonagem -= 3;
    }
    if (keyIsDown(DOWN_ARROW)) {
        yPersonagem += 3;
    }
}

function verificaColisao() {
    for (let i = 0; i < imagemCarros.lenght; i++) {
        colisao = collideRectCircle(xCarros[i], yCarro[i], comprimentoCarro, alturaCarro, xPersonagem, yPersonagem, 45);
        if (colisao) {
            colidiu();
        }
    }
}

function colidiu() {
    yPersonagem = 900;
}

A colisão não funciona, eu to tentando criar o jogo no VSCode. Alguém me ajuda?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Se o raio do circulo que é a vaca nesse caso equivale a 70, então o diâmetro deveria valer 45. Não entendo porque não funciona.

solução!

Já me ajudaram. O meu erro era que o carro[i] não estava no plural e o length estava escrito errado.

O código correto:

function verificaColisao() {
    for (let i = 0; i < imagemCarros.length; i++) {
        colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xPersonagem, yPersonagem, 45);
        if (colisao) {
            colidiu();
        }
    }
}