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

Diferença na estrutura no p5 js

Boa noite, Eu gostaria de tirar 2 dúvidas não relacionado ao código mas com o funcionamento do JS.

1- Nos 2 módulos de introdução a lógica de Programação a gente aprendeu por exemplo a desenhar na tela com por exemplos: pincel.fillRect();,Ja no editor p 5 js para desenhar o mesmo retangulo seria só rect e não precisa do fill.Rect(); para poder fazer com que o programa desenhe o mesmo.

Ambos os código são Java script correto então porque tem essa mudança de como desenhar um retângulo no editor de texto VS Code por exemplo e outro jeito para esse p5 js web?

2- Gira em torno da primeira duvida pois nas aulas de introdução aprendemos que é preciso chamar a função, nesse aula realmente chamamos todas as funções dentro da função draw, mas nós não chamamos a própria função draw. Não consegui entender o porque.

Segue abaixo o código feito na aula:

let xBall = 300;
let yBall=200;
let diametroBall= 15;
let velocidadeXBall= 2;
let velocidadeYBall=2;
let raio= diametroBall /2;


let xRaquete =5;
let yRaquete=150;
let raqueteComprimento = 10;
let raqueteAltura =90;

function setup() {
  createCanvas(600, 400);
}

function draw() {
  background(0);
  desenhaBall();
  velocidadesBall();
  condicaoBall();
  raquete();
  }

  function velocidadesBall(){
    xBall=xBall + velocidadeXBall;
    yBall+= velocidadeYBall;

  }

  function condicaoBall(){
  if (xBall+raio > width || xBall- raio<0){
    velocidadeXBall*= -1;
  }
  if(yBall+raio >height || yBall- raio<0){
    velocidadeYBall*=-1;}
  }


  function desenhaBall(){
    circle(xBall,yBall,diametroBall);
  }

function raquete (){
rect ( xRaquete,yRaquete,raqueteComprimento,raqueteAltura);

}
2 respostas
solução!

Olá Otto, tudo bem com você?

Vamos por partes :)

Ambos os código são Java script correto então porque tem essa mudança de como desenhar um retângulo no editor de texto VS Code por exemplo e outro jeito para esse p5 js web?

Então, o VSCode é apenas um editor de texto, quanto utilizamos ele, estamos utilizando todos os recursos naturais da linguagem

Com o P5 é um pouco diferente na medida em que ele não é somente um simples editor, mas também uma biblioteca com recursos para jogos :)

Então quando estamos trabalhando com o javascript em um editor de texto, precisamos cuidar de todas as partes, já com o p5 ele toma conta de algumas coisas para nós, então quando você digita:

circle( xBall, yBall, diametroBall)

Por debaixo dos panos o P5 irá fazer algo parecido com o que estamos acostumados:

pincel.arc( x, y, raio, 0, 2 * Math.PI);

mas nós não chamamos a própria função draw. Não consegui entender o porque.

Então, você está certíssimo!. Todas funções precisam ser invocadas para que sejam executadas, mas qualquer projeto em branco que a gente abra no P5 vem sempre com a função:

  • setup
  • draw

Isso não é coincidência :) Essas 2 funções quem tomam conta é o P5, então por isso não chamamos ela, a própria biblioteca quando apertamos o botão de play começa a executar essas 2 funções, 1 para ter noção das características do nosso jogo, e a draw para que execute infinitamente até que a gente pause o jogo!

Pode parecer um pouco confuso, mas com o passar do tempo vai ficando mais fácil, com linguagens de programação é comum utilizarmos bibliotecas que tornam a nossa vida um pouco mais fácil, pois deixam algumas funções mais simples e até executam coisas para nós!

Compreendeu? Qualquer coisa estou a disposição :)

Abraços e Bons Estudos!

Muito obrigado deu pra entender sim. No inicio parece tudo meio confuso mas acredito que com o tempo isso tudo vai ficando mais claro mas obrigado pela explicação deu pra compreender oq o p5 js faz.