Na parte que mostra as velocidades dos carros eu queria diminuir se os pontos dos jogadores menor ou igual a 4 ou aumentar a velocidade se os pontos forem maiores que 5. https://cursos.alura.com.br/course/javascript-listas-lacos/task/56243
Na parte que mostra as velocidades dos carros eu queria diminuir se os pontos dos jogadores menor ou igual a 4 ou aumentar a velocidade se os pontos forem maiores que 5. https://cursos.alura.com.br/course/javascript-listas-lacos/task/56243
Olá Leandro, tudo bem? espero que sim.
Desde já, agradecer a paciência em aguardar pela resposta.
Uma dica bem legal para solucionar a sua resposta da melhor forma possível, é compartilhar o código já feito por ti. Deste modo conseguimos compreender o que você deseja implementar. Mas vou lhe ajudar com base na sua descrição.
Entendi que conforme o jogador faça pontos o tráfego de carros fique mais intenso, e assim fazendo com que a dificuldade aumente até o ponto de se tornar muito difícil chegar ao outro lado da estrada.
Para isso podemos usar uma função, vou criar a função velocidade
ela vai pegar a lista que controla a velocidade dos carros e de acordo com o número que está guardado na variável meuspontos
, podemos escolher que velocidade queremos, sinta a vontade para modificar os valores que coloquei na lista, utilizei esses afim de exemplificar, deste modo a função fica assim:
function velocidade(){
if(meusPontos < 4){
velocidadeCarros = [1.2, 1.3, 1.6, 1, 1.1, 1.5];
}
if(meusPontos >= 4)
{
velocidadeCarros = [2, 2.5, 3.2, 5, 3.3, 2.3];
}
if(meusPontos > 5){
velocidadeCarros = [3.5, 3.9, 4.3, 5, 4.4, 4.9];
}
}
A partir de agora é só pensarmos em que lugar podemos chamar essa função, neste caso optei por chamar na função pontosMaiorQueZero
, já que pode haver mudanças na velocidade dos carros caso tenha mudanças nos pontos do jogador, a função vai ficar assim:
function pontosMaiorQueZero(){
velocidade(); // será chamada aqui
return meusPontos > 0;
}
Por fim, é importante iniciar a nossa função velocidade()
chamando ela em function draw(){}
ficando assim:
function draw() {
background(imagemDaEstrada);
mostraAtor();
mostraCarro();
movimentaCarro();
movimentaAtor();
voltaPosicaoInicialDoCarro();
verificaColisao();
incluiPontos();
marcaPonto();
velocidade(); // a nova função
}
O seu código ator.js
fica deste jeito:
//código do ator
let xAtor = 85;
let yAtor = 366;
let colisao = false;
let meusPontos = 0;
function mostraAtor(){
image(imagemDoAtor, xAtor, yAtor, 30, 30);
}
function movimentaAtor(){
if (keyIsDown(UP_ARROW)){
yAtor -= 3;
}
if (keyIsDown(DOWN_ARROW)){
if(podeSeMover()){
yAtor += 3;
}
}
}
function verificaColisao(){
//collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
for (let i = 0; i < imagemCarros.length; i++){
colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15)
if (colisao){
somDaColisao.play();
voltaAtorParaPosicaoInicial();
if(pontosMaiorQueZero()){
meusPontos -= 1;
}
}
}
}
function voltaAtorParaPosicaoInicial(){
yAtor = 366;
}
function incluiPontos(){
textAlign(CENTER);
textSize(25);
fill(color(255, 240, 60))
text(meusPontos, width / 5, 27);
}
function marcaPonto(){
if (yAtor < 15){
meusPontos += 1;
somDoPonto.play();
voltaAtorParaPosicaoInicial();
}
}
function marcaPonto(){
if (yAtor < 15){
meusPontos += 1;
voltaAtorParaPosicaoInicial();
}
}
function pontosMaiorQueZero(){
velocidade();
return meusPontos > 0;
}
function podeSeMover(){
return yAtor < 366;
}
function velocidade(){ // EXEMPLO
if(meusPontos < 4) // vai receber a velocidade normal
{
velocidadeCarros = [1.2, 1.3, 1.6, 1, 1.1, 1.5];
}
if(meusPontos >= 4) // entre o valor 4 e 5 fica mais rápido ainda.
{
velocidadeCarros = [2, 2.5, 3.2, 5, 3.3, 2.3];
}
if(meusPontos > 5){ // do 6 em diante fica muito mais rápido
velocidadeCarros = [3.5, 3.9, 4.3, 5, 4.4, 4.9];
}
}
Espero que eu consiga com esta resposta te ajudar de alguma forma, vou deixar o link para que você consiga entender melhor o que fiz.
Um grande Abraço e até mais!