Skip to content

Instantly share code, notes, and snippets.

@SnowyPainter
Created January 24, 2022 15:43
Show Gist options
  • Save SnowyPainter/46b33609ff72825aa0d19e55211ac72b to your computer and use it in GitHub Desktop.
Save SnowyPainter/46b33609ff72825aa0d19e55211ac72b to your computer and use it in GitHub Desktop.
#include <SFML/Graphics.hpp>
#include <iostream>
#include <string>
#include <vector>
#include <tuple>
using namespace std;
int main() {
auto windowVideoMode = sf::VideoMode(1000, 900);
sf::RenderWindow window(windowVideoMode, "", sf::Style::Titlebar | sf::Style::Close);
auto drawables = vector<tuple<sf::Drawable*, unsigned int>>();
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear(sf::Color::White);
int minZ = 99999;
int maxZ = -99999;
for (int i = 0; i < drawables.size(); i++) {
auto val = std::get<1>(drawables[i]);
minZ = min((int)val, minZ);
maxZ = max((int)val, maxZ);
}
auto d = drawables;
for (int i = minZ; i <= maxZ; i++) {
for (int j = 0; j < d.size(); j++) {
auto z = std::get<1>(d[j]);
if (z == i) {
window.draw(*std::get<0>(d[j]));
d.erase(d.begin() + j);
}
}
}
window.display();
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment