diff options
| author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-01-30 11:50:30 -0500 |
|---|---|---|
| committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-01-30 11:50:30 -0500 |
| commit | 763bd80603dbace9f14c25309159ed07ec6e9a93 (patch) | |
| tree | 8597c1ca9246ead9fae04e74e028665e3e406e9b /src/game.cpp | |
| parent | de0ac2927230ce44fb92f362bfa7e4b4cb29bdd1 (diff) | |
| download | tanetane-763bd80603dbace9f14c25309159ed07ec6e9a93.tar.gz tanetane-763bd80603dbace9f14c25309159ed07ec6e9a93.tar.bz2 tanetane-763bd80603dbace9f14c25309159ed07ec6e9a93.zip | |
Added sprite Y sorting
Diffstat (limited to 'src/game.cpp')
| -rw-r--r-- | src/game.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
| 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 @@ | |||
| 1 | #include "game.h" | ||
| 2 | |||
| 3 | int Game::addSprite(Sprite sprite) { | ||
| 4 | int id = sprites_.size(); | ||
| 5 | sprites_.push_back(std::move(sprite)); | ||
| 6 | spritesByY_.emplace(sprite.loc().y(), id); | ||
| 7 | return id; | ||
| 8 | } | ||
| 9 | |||
| 10 | void Game::moveSprite(int id, vec2i newLoc) { | ||
| 11 | Sprite& sprite = sprites_.at(id); | ||
| 12 | bool changedY = (sprite.loc().y() != newLoc.y()); | ||
| 13 | if (changedY) { | ||
| 14 | spritesByY_.erase(std::make_tuple(sprite.loc().y(), id)); | ||
| 15 | } | ||
| 16 | sprite.loc() = newLoc; | ||
| 17 | if (changedY) { | ||
| 18 | spritesByY_.emplace(newLoc.y(), id); | ||
| 19 | } | ||
| 20 | } \ No newline at end of file | ||
