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

[Dúvida] dúvida sobre a lógica envolvendo o argumento de uma função : function (x , y)

Olá! Sou iniciante e algumas coisas ainda me deixam bastante confuso. Uma delas é envolvendo os argumentos dentro dos () de uma função.

No vídeo, o professor indicou para fazermos o seguinte:

function verificaColisaoBiblioteca(x, y){
  colidiu = collideRectCircle(x, y,  wRaquete, hRaquete, xBolinha, yBolinha, raio);
  if (colidiu){ velocidadeXBolinha *= -1}
}

  verificaColisaoBiblioteca(xRaquete, yRaquete);
  verificaColisaoBiblioteca(xRaqueteOponente, yRaqueteOponente);

Eu não entendi o "x" e o "y" que ficam ali dentro dos () do collideRectCircle. Quando escrevi, eles não ficaram com as cores de variáveis (porque pelo entendi, não são variáveis, mas apenas indicações de que alguma coisa ali vai ser preenchida). Se alguém pudesse me explicar a lógica envolvendo essa operação, ficaria imensamente grato! (fui no https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Functions mas não me ajudou muito...) Por gentileza, quem for me explicar assuma que eu não sei NADA de programação (que é mais ou menos o caso por enquanto rs) Obrigado desde já pela ajuda!

2 respostas
solução!

Oi Vinícius, tudo bem?

Seu pensamento está correto, os argumentos x e y são termos genéricos que serão preenchidos por outras informações que estão contidas e descritas nas variáveis que criamos ao longo do código.

No caso do código que você apresentou como exemplo, ao ler:

function draw(){
    verificaColisaoBiblioteca (xRaquete, yRaquete);
}

O javascript irá analisar a função:

function verificaColisaoBiblioteca(x, y){
  colidiu = collideRectCircle(x, y,  wRaquete, hRaquete, xBolinha, yBolinha, raio);
if (colidiu){ velocidadeXBolinha *= -1}
}

No lugar do x e y ele substituirá pelos valores das variáveis que criamos para nossa raquete:

//variáveis da minha raquete
let xRaquete = 5;
let yRaquete = 150;

O mesmo acontece para a raquete do oponente. No caso ao escrevermos uma função:

function verificaColisaoBiblioteca (){   
}

Os parênteses podem receber parâmetros, por exemplo o x e o y, que permitem trazer informações externas para dentro da função, no caso os valores das variáveis referentes à posição da minha raquete e da raquete do oponente.

Caso você queira entender mais sobre as funções em javascript sugiro que você veja este alura+ sobre functions declaration e function expression:

Espero ter ajudado a solucionar sua dúvida. Caso tenha outras, estarei aqui para te ajudar :)

Grande abraço!

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

Entendi, Rodrigo! Obrigado pela excelente explicação e pela gentileza com o novato aqui! Vou ver o vídeo recomendado agora! = D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software