Oi, pessoal!
Montei o Freeway ao longo das aulas e fui fazendo alterações conforme ia tendo ideias. Para o jogo, usei imagens a mais para os carros que seriam das faixas da outra mão, fiz o Ator começar de cima (yActor = 0) e se movimentar para os lados, também com limite nas bordas laterais da tela.
Uma outra mudança que fiz foi considerar o placar como um "número de vidas" (começando com três) que se acumulam conforme se atravessa até o final. Caso o jogador chegue a 10, ele vence a partida e é exibida a mensagem "you win" no centro da tela, hehe. Se as "vidas" chegam a 0, é exibida a mensagem "game over" em vermelho. Para funcionar assim, tive que desconsiderar a função "pontosMaiorQueZero" e coloquei "speedCar = 0" para parar os carros:
function youWin(){ if (gameScore > 9){ congratsYouWin(); speedCars = 0; yActor = 370; } }
function congratsYouWin(){ stroke(0); textAlign(CENTER); textStyle(BOLD); textSize(65); fill(color(0,255,100)); text('YOU WIN!', width / 2, height / 2 + 20); }
function endGame(){ if (gameScore < 0){ gameOver(); speedCars = 0; xActor = 225; yActor = 200; } }
function gameOver(){ stroke(0); textAlign(CENTER); textSize(70); fill(color(175,0,0)); text('GAME OVER', width / 2, height / 2 + 20); }
Para ter carros nos dois sentidos, acabei criando dois arquivos JS, um para os carros que vão e outro para os que voltam. Pra isso, optei por duplicar a maioria das funções mas com nomes parecidos (para exibir os carros, "showCar" num arquivo e "showCar2" noutro, por exemplo). Acho que dá pra deixar melhor.
Aqui o sketch: https://editor.p5js.org/taugoliv/sketches/fe6-Tmxt6
Aqui o resultado final: https://editor.p5js.org/taugoliv/full/fe6-Tmxt6