O jogo: https://editor.p5js.org/Jeancg4p0/full/xfa6pwY-Y o código: https://editor.p5js.org/Jeancg4p0/sketches/xfa6pwY-Y
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Aqui funcionou normalmente. Provavelmente seu Navegador esta bloqueando o Alert do javaScript. Verifica isso
Testei em outro Navegador mas o problema persiste, após o "alert()" o jogador até se move e as outras funções continuam sendo executadas com exceção de pontos.play(); então quando o jogador pontua o jogo trava. Fiz umas alterações na velocidade do Jogador código: https://editor.p5js.org/Jeancg4p0/sketches/xfa6pwY-Y
Olhei no F12 (opcao de desenvolvedor)
Uncaught TypeError: pontos.play is not a function
at pontua (10782ad9-16a1-47bb-8fda-31a06f426849:64:16)
at draw (edca6214-8a27-4d28-adec-0cd659ae37f7:16:3)
at p5._main.default.redraw (p5.js:70809:27)
at _draw (p5.js:63046:25)
Removi os play = 0; Vc estava mudando o tipo da variavel.
//jogador
var xJogador = 15;
var yJogador = 310;
var wJogador = 25;
var hJogador = 28;
var colisao = false;
var meusPontos = 0;
var velJogadorI = 2;
var velJogador;
console.log(velJogador);
function mostraJog(){
image(imgJogador, xJogador, yJogador, wJogador, hJogador);
}
function movimentaJog(){
if(keyIsDown(UP_ARROW)){
yJogador -= velJogador;
}
if(keyIsDown(DOWN_ARROW)){
yJogador += velJogador;
}
if(keyIsDown(LEFT_ARROW)){
xJogador -= velJogador;
}
if(keyIsDown(RIGHT_ARROW)){
xJogador += velJogador;
}
}
function verificaColisao(){
//collideRectRect(x, y, width, height, x2, y2, width2, height2 )
for(var i = 0; i < imgCarros.length; i++){
colisao = collideRectRect(xJogador, yJogador, wJogador, hJogador, xCarros[i], yCarros[i], wCarros, hCarros );
if(colisao){
começaDnv();
colidiu.play();
if(chances > 0){
chances--;
}
if(chances == 0){
perder();
}
}
}
}
function perder(){
alert("PERDEU!");
chances = 7;
rounds = 1;
}
function começaDnv(){
yJogador = 310;
}
function pontua(){
if(yJogador + hJogador < 30 && meusPontos < 2){
meusPontos++;
começaDnv();
pontos.play();
}
if(yJogador + hJogador < 30 && meusPontos >= 2){
pontos.play();
começaDnv();
meusPontos = 0;
rounds++;
velJogador = velJogadorI*rounds;
}
if(meusPontos < 2){
velJogador = velJogadorI*rounds;
}
}
function impedimento(){
if(yJogador > 320){
yJogador = 300
}
}
function verificaRound(){
velCarros.splice(0, 6, 2.5*rounds, 1.9*rounds, 0.5*rounds, 1*rounds, 2.2*rounds, 3*rounds);
}
Nossa, muito obrigado de início não tinha entendido o que eu tinha errado, mas depois entendi, para zerar o placar após o alert não mudei a variável meusPontos mas sim a que guardava o som https://editor.p5js.org/Jeancg4p0/sketches/xfa6pwY-Y