From 763bd80603dbace9f14c25309159ed07ec6e9a93 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sat, 30 Jan 2021 11:50:30 -0500 Subject: Added sprite Y sorting --- src/game.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/game.cpp (limited to 'src/game.cpp') diff --git a/src/game.cpp b/src/game.cpp new file mode 100644 index 0000000..ccca10f --- /dev/null +++ b/src/game.cpp @@ -0,0 +1,20 @@ +#include "game.h" + +int Game::addSprite(Sprite sprite) { + int id = sprites_.size(); + sprites_.push_back(std::move(sprite)); + spritesByY_.emplace(sprite.loc().y(), id); + return id; +} + +void Game::moveSprite(int id, vec2i newLoc) { + Sprite& sprite = sprites_.at(id); + bool changedY = (sprite.loc().y() != newLoc.y()); + if (changedY) { + spritesByY_.erase(std::make_tuple(sprite.loc().y(), id)); + } + sprite.loc() = newLoc; + if (changedY) { + spritesByY_.emplace(newLoc.y(), id); + } +} \ No newline at end of file -- cgit 1.4.1