Este projeto é uma simulação simples de "areia caindo" (falling sand) feita em C usando a biblioteca gráfica Raylib. A ideia é representar partículas de areia que obedecem a regras básicas de gravidade e colisão, criando um efeito visual semelhante a jogos de física granular.
- Simulação de partículas de areia com gravidade.
- Movimento lateral aleatório ao encontrar obstáculos.
- Brush de desenho com dispersão para criar areia de forma mais natural.
- Resolução configurável (largura, altura e tamanho de célula).
- Atualização de partículas de baixo para cima para evitar reprocessamento no mesmo frame.
- Linguagem: C
- Biblioteca gráfica: Raylib
- Paradigma: Autômato celular bidimensional
- Grid principal (
grid): armazena o estado atual das células. - Grid auxiliar (
nextGrid): usado para calcular o próximo estado sem sobrescrever o atual. - Loop de atualização: processa cada célula de baixo para cima, aplicando regras de movimento.
- Controle de entrada: desenha areia na posição do mouse com um pincel configurável.
- Instale a Raylib.
- Compile o código e Execute!: (Apenas Linux, por enquanto!🐧)
make
- Para executar após o primeiro make:
./falling_sand
- Se a célula abaixo estiver vazia, a areia cai.
- Se não puder cair para baixo, escolhe aleatoriamente cair para a esquerda ou direita (se disponível).
- Se não houver espaço, permanece no lugar.
Este projeto foi inspirado no vídeo "Coding Challange: Falling Sand", O video usa PJ5 para chegar no seu objetivo então traduzi o código para C e Raylib
