diff --git a/include/physics_engine.h b/include/physics_engine.h new file mode 100644 index 0000000..06683b7 --- /dev/null +++ b/include/physics_engine.h @@ -0,0 +1,17 @@ +#pragma once + +#include +#include +#include "physics_object.h" + +class PhysicsEngine { +private: + std::vector> objects; + +public: + void addObject(std::unique_ptr obj); + void update(float dt); + void draw(sf::RenderWindow& window); +}; + + diff --git a/src/PhysicsEngine.cpp b/src/PhysicsEngine.cpp new file mode 100644 index 0000000..087ccf3 --- /dev/null +++ b/src/PhysicsEngine.cpp @@ -0,0 +1,23 @@ +#include "physics_engine.h" + +void PhysicsEngine::addObject(std::unique_ptr obj) { + object.push_back(std::move(obj)); +} + +void PhysicsEngine::update(float dt) { + for (auto& obj : objects) + obj->update(dt); // update() func for objects to be declared + + for (int i = 0; i < objects.size(); i++) { + for (int j = i + 1; j < objects.size(); j++) { + // require a func to access x, y coordinates + } + } +} + +void PhysicsEngine::draw(sf::RenderWindow& window) { + for (auto& obj : objects) + obj->draw(window); // draw() func to open window and display collision +} + +