1
resposta

fazer dessa forma fica legal?

Eu nao criei outra função para os carros voltarem a posição inicial. tem algum problema? fica pior?


function mostraCarro (){
image(imagemDoCarro1,xCarro,yCarro,40,30)//verde
image(imagemDoCarro2,xCarro2,yCarro2,40,30)//preto
image(imagemDoCarro3,xCarro3,yCarro3,40,30)//amarelo
}

function movimentaCarro (){
  if (xCarro + 40  < 0){xCarro = xTela } 
  xCarro-= velocidadeCarro}

function movimentaCarro2 (){
  if (xCarro2 + 40  < 0){xCarro2 = xTela } 
  xCarro2-= velocidadeCarro2}

function movimentaCarro3 (){
  if (xCarro3 + 40  < 0){xCarro3 = xTela } 
##   xCarro3-= velocidadeCarro3}

criei uma verificação na função movimentaCarro

note que eu usei o tamanho do xCarro como medida para o carro voltar a posição inicial assim no momento que ele ultrapassar o ponto 0 ele ja volta para o ponto 600(xTela)

esse xTela é porque eu coloquei uma variavel para o tamanho da tela, pois se eu mudar o tamanho da tela o jogo ainda funciona com os objetos nos locais que eu quero.!

1 resposta

Oi Claudinei, tudo bem?

Obrigado pela paciência em aguardar uma resposta!

Muito interessante o seu raciocínio e a forma como você escreveu os comandos que compõem o seu código. Realmente, seja escrevendo da maneira como você fez ou da forma apresentada no curso, o código irá funcionar adequadamente, então sinta-se a vontade para escolher. Contudo, é importante garantir que ao entregar o código para outra pessoa, as informações estejam claras.

Por isso, dividir as responsabilidades em mais de uma função é algo recorrente, já que traz mais simplicidade e legibilidade para o código. Exemplo:

//códigos dos carros

let xCarros = [600,600, 600, 600, 600, 600];
let yCarros = [40, 96, 150, 210, 270, 318];
let velocidadeCarros = [2, 4.3, 3.2, 5, 4.1, 2.3];
let comprimentoCarro = 50;
let alturaCarro = 40;

function mostraCarro(){
  for(let i = 0; i < imagemCarros.length;i++){
   image(imagemCarros[i], xCarros[i], yCarros[i], comprimentoCarro, alturaCarro);
  }
}

function movimentaCarro(){
  for(let i = 0; i<imagemCarros.length; i++){
    xCarros[i] -= velocidadeCarros[i];
  }
}

function voltaPosicaoInicialDoCarro(){
  for( let i = 0; i<imagemCarros.length; i++){
    if (passouTodaTela(xCarros[i])){
    xCarros[i] = 600;
    }
  }
}

function passouTodaTela(xCarros){
  return xCarros <-50;
}

Perceba que no código apresentado, cada função atua de maneira independente em uma das especificidades relacionadas as imagens dos carros, e que por conta disso, as informações apresentadas podem ser lidas com mais clareza.

Recomendo um artigo que explica a importância do design de código no cotidiano da pessoa programadora, acredito que ele possa esclarecer ainda mais estas questões.

Espero ter ajudado. Caso tenha dúvidas, estarei à disposição para te auxiliar!

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.