You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.9 KiB
56 lines
1.9 KiB
#include "maingame.h" |
|
|
|
void UpdateCollisions(Entity* entityA, Entity* entityB) { |
|
std::cout << "Collisions!" << std::endl; |
|
} |
|
|
|
void MainGame::Initialize(sf::RenderWindow* window) { |
|
this->entityManager = new EntityManager(); |
|
this->entityManager->SetCollisionMethod(UpdateCollisions); |
|
|
|
// Add entities |
|
this->entityManager->AddEntity("test", new Entity("data/gfx/test.png")); |
|
this->entityManager->AddEntity("test", new Entity("data/gfx/test.png")); |
|
this->entityManager->Get("test0")->velocity.x = 0.5; |
|
this->entityManager->Get("test")->setPosition(sf::Vector2f(50, 50)); |
|
this->entityManager->Get("test0")->setPosition(sf::Vector2f(50, 300)); |
|
|
|
// Load Map |
|
this->map = new Map(); |
|
MapLoad(this->map, "data/map/level1.json"); |
|
|
|
// Load Camera |
|
this->camera = new Camera(window); |
|
|
|
// Load Player |
|
this->player = new Player(this->entityManager, this->map, this->camera, 100, 100); |
|
this->entityManager->AddEntity("Player", this->player); |
|
} |
|
|
|
void MainGame::Update(sf::RenderWindow* window) { |
|
this->time = this->clock.getElapsedTime(); |
|
int timeElapsed = this->time.asMicroseconds(); |
|
this->clock.restart(); |
|
|
|
this->player->Update(window, inputManager, timeElapsed); |
|
this->entityManager->Update(); |
|
this->map->CheckCollision(window, this->player); |
|
this->camera->Update(window, this->map, sf::Vector2f(this->player->getPosition().x, this->player->getPosition().y)); |
|
|
|
if(inputManager.IsPressed(InputManager::LoadMap)) { |
|
std::cout << "Loading Map..." << std::endl; |
|
MapLoad(this->map, "data/map/level1.json", 1); |
|
} |
|
} |
|
|
|
void MainGame::Render(sf::RenderWindow* window) { |
|
this->map->RenderGround(window); |
|
this->entityManager->Render(window); |
|
this->map->RenderAbove(window); |
|
} |
|
|
|
void MainGame::Destroy(sf::RenderWindow* window) { |
|
delete this->entityManager; |
|
delete this->map; |
|
delete this->camera; |
|
}
|
|
|