Alguns códigos em P5.js.
Programei essas simulações simples enquanto estudava esse tema pela primeira vez.
Para testar os códigos, fazer alterações, visualizar as simulações, etc, basta:
- Baixar os projetos aqui
- Descompactar o arquivo
- Navegar pelas pastas, escolhendo o projeto que deseja testar
- Abrir o arquivo index.html relativo ao projeto que deseja ver em seu navegador
As descrições a seguir estão em ordem de complexidade, do projeto mais simples até o mais complexo. Assim, é possível perceber uma cronologia no aprendizado dos conceitos.
Uma simples simulação de chuva infinita.
Primeira experiência que eu tive com controle de bordas da tela.
Ao clicar na tela, ocorre uma espécie de explosão de fogos de artifício no local.
Foi interessante pra testar o controle de múltiplas partículas.
Uma simples visualização de 2 vetores sendo somados e subtraídos, sendo possível manipular 1 deles através do mouse.
Me ajudou na percepção dos vetores no espaço, já que esse assunto era bastante novo pra mim.
Um céu azul com nuvens brancas passando.
Primeira experiência com "Perlin Noise".
Experiência simples pra continuar treinando "Perlin Noise".
O objetivo era visualizar um pouco o comportamento das funções seno e cosseno alterando os argumentos dentro do código.
Se ficar interessando, recomendo testar diferentes argumentos nos lugares sinalizados no código.
O objetivo era fazer a bola seguir o mouse de uma maneira menos "dura" e robotizada.
Foi a minha maneira de testar os conceitos de "Steering Behaviors" que eu andava estudando.
Se tiver interesse, o Daniel Shiffman tem uma playlist (https://youtu.be/4zhJlkGQTvU) e um livro (https://natureofcode.com/book/chapter-6-autonomous-agents/) abordando tudo sobre esse assunto.
Quanto mais longe o mouse fica da "ameba", mais tentáculos ela lança para se deslocar para o local, o que prejudica sua precisão.
Primeira tentativa de jogo.
Foi importante pra treinar alguns conceitos de movimentação através do teclado e de gravação de histórico (pra guardar as posições anteriores da cobra e desenhar o corpo).