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

[Dúvida] Poderia me ajudar nesses incrementos? vamos melhorar juntos

Olá. Tive várias ideias para adicionar ao jogo da nosa vaquina, mas não sei bem como aplicar. Já adicionei mais carros a pista, estando algumas pistas com 2 carros e a velocidade dos carros aumenta conforme ganha pontos

Gostaria de também aplicar a ideia de nossa vaquinha ter 3 vidas e quando zerar, todo o jogo pausar na hora da colião, aparecer o nome "game over" e apertar a tecla espaço para iniciar novamente. Estilo do jogo Dino do Google Chrome

Como podemos estar aplicando essas ideias no projeto? obs.: já coloquei o números de vidas, falta adicionar os ventos quando as vidas zerar

Link do projeto: https://editor.p5js.org/claudivan040/sketches/neaK0NZHP

3 respostas
solução!

Olá Claudivan, tudo bem?

Que legal que você está adicionando novas ideias ao seu jogo! Para implementar a ideia das vidas, você pode criar uma variável global para armazenar o número de vidas da vaquinha, por exemplo:

let vidas = 3;

Em seguida, você pode criar uma condição para verificar se a vaquinha colidiu com algum carro e, caso tenha colidido, decrementar o número de vidas:

if (colidiu) {
  vidas--;
  if (vidas === 0) {
    // exibir mensagem de game over e pausar o jogo
  }
}

Para exibir a mensagem de game over e pausar o jogo, você pode utilizar a função text() do p5.js e a variável noLoop() para interromper a execução do jogo:

if (vidas === 0) {
  textSize(32);
  text("Game Over", width/2, height/2);
  noLoop();
}

Por fim, para reiniciar o jogo ao pressionar a tecla espaço, você pode utilizar a função keyPressed() do p5.js e verificar se a tecla pressionada foi a barra de espaço:

function keyPressed() {
  if (key === ' ') {
    // reiniciar o jogo
  }
}

Bons estudos!

Mais um encremento aqui para você, colocar os carros da pista de baixo, na direção oposta a pista de cima, como se fosse uma via de mão dupla, como faria nesse caso ?

Oi Patrick, tudo bem? Eu demorei mas consegui colocar carros na direção oposta.

A variável xCarro tem que ser um valor negativo, já que esse carro sairá do lado oposto da tela:

let xCarro = -50;

A variável velocidadeCarro também será um valor negativo, fazendo com que o mesmo "ande" para o lado oposto dos demais carros:

let velocidadeCarro = -4;

Para que o carro volte a posição inicial, coloquei os seguintes valores:

function voltaPosicaoInicial(){

    if (xCarro > 550){
    xCarro = -50}
}

Não sei se a minha lógica está correta, mas dessa forma funcionou para o meu jogo.