From de0ac2927230ce44fb92f362bfa7e4b4cb29bdd1 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sat, 30 Jan 2021 09:56:16 -0500 Subject: Added party following movement --- src/party.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/party.cpp') diff --git a/src/party.cpp b/src/party.cpp index 559aacb..6c003b8 100644 --- a/src/party.cpp +++ b/src/party.cpp @@ -1,10 +1,20 @@ #include "party.h" #include "consts.h" -void Party::addMember(int spriteId) { +void Party::addMember(Game& game, int spriteId) { + int index = members_.size(); + PartyMember newMember; newMember.spriteId = spriteId; + if (index > 0) { + Sprite& sprite = game.getSprite(spriteId); + + for (int i = 0; i < PARTY_FRAME_DELAY * index; i++) { + newMember.nextPosition.push_back(sprite.loc()); + } + } + members_.push_back(std::move(newMember)); } @@ -36,7 +46,14 @@ void Party::move(Game& game, const Input& keystate) { pLoc.x() += MOVEMENT_SPEED; } - if (pLoc != p1.loc()) { + if (keystate.up || keystate.down || keystate.left || keystate.right) { p1.loc() = pLoc; + + for (int i = 1; i < members_.size(); i++) { + Sprite& pNext = game.getSprite(members_[i].spriteId); + members_[i].nextPosition.push_back(pLoc); + pNext.loc() = members_[i].nextPosition.front(); + members_[i].nextPosition.pop_front(); + } } } \ No newline at end of file -- cgit 1.4.1