Skip to content

travrei/fallingsandraylib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏖️ Falling Sand Simulation em C & Raylib

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.

📸 Demonstração

Falling Sand Demo

🚀 Funcionalidades

  • 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.

🛠️ Tecnologias Utilizadas

  • Linguagem: C
  • Biblioteca gráfica: Raylib
  • Paradigma: Autômato celular bidimensional

📂 Estrutura do Código

  • 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.

📦 Como Executar

  1. Instale a Raylib.
  2. Compile o código e Execute!: (Apenas Linux, por enquanto!🐧)
    make
  • Para executar após o primeiro make:
    ./falling_sand

🎯 Regras da Simulação

  1. Se a célula abaixo estiver vazia, a areia cai.
  2. Se não puder cair para baixo, escolhe aleatoriamente cair para a esquerda ou direita (se disponível).
  3. Se não houver espaço, permanece no lugar.

📚 Inspiração e Conteúdo Relacionado

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

About

A Simple falling_sand Simulator in C with Raylib

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published