Raylib Bubbles
C++11 Raylib bubble shooter game.
Todo List
Member Game::loop ()
Reduce complexity by moving logic to helper methods.
Member GameActionMgr::ActionType::step (const float scale=1.0f)
Make two horizontally separate points that must both be in the same bubble cell for better bubble collisions.
Member GameActionMgr::AnimState::AnimType
Can be extended to other things other than bubbles.
Member GameActionMgr::find (const size_t id) const
Inefficient O(n) linear traversal (but better cache linearity/access time)
Class GameBoard
The BubbleCell::neighbors variable is only used in the canAttach() method to quickly attach (check) bubbles, but I'm unsure if using neighbor logic is the best way to solve this problem, as persistent neighbor updating might perform worse than checking on the fly when attaching (check) is needed. Consider that on each call to canAttach(). the applyNbrs() method is called to update the neighbor states. This might result in worse performance.
Member GameBoard::dropFloating ()
I don't remember how I implemented this new refactor anymore... remember to come back for docs writing.
Member GameBoard::popEventVec ()
This is inefficiently making a copy of a vector instead of giving ownership (or is it? Check the move constructor?)
Class GameHUD
Make an enum class to hold the indexes of the arrow pieces more cleanly.
Member PlacedBoard::oob (const float x, const float y) const
Naming collides with GameBoard::oob() method, which has row, col arguments.
Member PlacedBoard::oow (const float x, const float y) const
Naming collides with GameBoard::oob() method, which has row, col arguments.