Gravidade de Partículas com C++ e SFML

🚀 Shorts, Reels e TikTok


Gravidade de Partículas com C++ e SFML


Youtube Shorts


TikTok

@terminalroot

Gravidade de Partículas com C++ e SFML https://terminalroot.com.br/2025/04/gravidade-de-particulas-com-cpp-e-sfml.html

♬ Speed - Monge

Reel

https://www.instagram.com/p/DIXoXq9gvmF/


Código

#include <SFML/Graphics.hpp>
#include <cmath>

struct Particle {
  sf::Vector2f position;
  sf::Vector2f velocity;
  float radius = 2.f;

  Particle(float x, float y){
    position = {x, y};
    velocity = {0, 0};
  }

  void update(const sf::Vector2f& mouse_pos, float dt){
    sf::Vector2f direction = mouse_pos - position;
    float distance = std::sqrt(direction.x * direction.x + direction.y * direction.y);

    if(distance < 100.f && distance > 1.f){
      direction /= distance;
      velocity += direction * (100.f / distance);
    }

    position += velocity * dt;
    velocity *= 0.98f;
  }

};

int main(){
  sf::RenderWindow window(sf::VideoMode(450,800), "Gravity Particles"); 
  window.setFramerateLimit(60);

  std::vector<Particle> particles;
  for(size_t i = 0; i < 500; ++i){
    particles.emplace_back(rand() % window.getSize().x, rand() % window.getSize().y);
  }

  while( window.isOpen() ){
    sf::Event event;
    while( window.pollEvent(event)){
      if( event.type == sf::Event::Closed ){
        window.close();
      }
    }

    sf::Vector2f mouse_pos = (sf::Vector2f)sf::Mouse::getPosition(window);

    for(auto &var : particles){
      var.update(mouse_pos, 0.1f);
    }

    window.clear();
    for(auto& var : particles){
      sf::CircleShape shape(var.radius);
      shape.setPosition(var.position);
      shape.setFillColor(sf::Color::White);
      window.draw(shape);
    }
    window.display();
  }

  return EXIT_SUCCESS;
}
// g++ main.cpp -lsfml-graphics -lsfml-window -lsfml-system

animacao cpp sfml shorts reels tiktok


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!