Something went wrong on our end
-
Petrus Eriksson authoredPetrus Eriksson authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
main.cc 2.97 KiB
#include <SFML/Graphics.hpp>
#include "Player.h"
#include "indestructable_block.h"
#include "destructable_block.h"
#include "mystery_block.h"
#include "Enemy.h"
#include "power_up.h"
#include <vector>
//Mystery blocks update ska kalla på både update för block men också power_up:s update. Hur?
#include <iostream>
int main()
{
sf::RenderWindow window{sf::VideoMode(1024,768), "Our game"}; //
Player player{40,50,50,718, 350.0f, 300.0f}; //Width, height, x-pos, y-pos, movement_speed, jump_height
std::vector<Block*> blocks{};
blocks.push_back(new Indestructable_block{50, 0, 718}); //size, x-pos, y-pos. Color: Red //BEGIN
blocks.push_back(new Indestructable_block{50, 974, 718}); //size, x-pos, y-pos. Color: Blue //END
blocks.push_back(new Indestructable_block{50, 150, 718}); //size, x-pos, y-pos. Color: Green
blocks.push_back(new Indestructable_block{50, 200, 668});
blocks.push_back(new Destructable_block{50, 250, 618});
blocks.push_back(new Mystery_block{50, 300, 568});
blocks.push_back(new Destructable_block{50, 350, 568});
blocks.push_back(new Destructable_block{50, 400, 568});
blocks.push_back(new Indestructable_block{50, 200, 718});
blocks.push_back(new Indestructable_block{50, 250, 718});
blocks.push_back(new Indestructable_block{50, 300, 718}); //Ground
blocks.push_back(new Indestructable_block{50, 350, 718});
blocks.push_back(new Indestructable_block{50, 400, 718});
blocks.push_back(new Indestructable_block{50, 450, 718});
//std::vector<Enemy*> enemies{};
//enemies.push_back(new Enemy{100, 60, 200, 718, 350.0f}); //width, height, x-pos, y-pos, movement_speed
//enemies.push_back(new Enemy{70,60,150, 718, 350.0f});
sf::Clock clock;
bool closed{false};
while(!closed)
{
sf::Event event;
while(window.pollEvent(event))
{
if(event.type == sf::Event::Closed || sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
{
closed = true;
}
}
window.clear();
player.update(clock, window);
for(auto it : blocks) //Checks collision between player and blocks
{
bool destruct{false};
destruct = player.check_collision(it, it->get_otype());
if(destruct)
{
delete it;
it = nullptr;
}
}
for(auto it : blocks)
{
it->update(window);
}
/*for(auto enemy : enemies)
{
for(auto block : blocks)
{
enemy->update(clock, window, *block);
}
}*/
window.display();
}
std::cout << blocks.size() << std::endl;
for(auto it : blocks)
{
if(it == nullptr)
{
std::cout << "nullptr" << std::endl;
}
}
blocks.erase(remove_if(begin(blocks), end(blocks), [](Block* b){return b == nullptr;}), end(blocks));
std::cout << blocks.size() << std::endl;
for(auto it : blocks)
{
delete it;
}
/*for(auto it : enemies)
{
delete it;
}*/
}