Nothing inherently wrong with your source apart from using namespaces in your header files. You should not do that.
Couple small nitpicks on top of that though.
Don't use rand() in c++11 or higher. Use the <random> header.
Define global vars/fncs in your main as private (static) where required.
I saw a bunch of "15", maybe use #define WIDTH_HEIGHT_MINUS_ONE 15. (you get the idea).
Use initialization lists in your Animation constructor. E.g:
c++ Code:
Animation() : currentFrame(0), loop(true), flip(false), isPlaying(true)
{
}
You don't need a constructor or destructor for your AnimationManager class. So omit it.
You should const ref when you can. E.g:
c++ Code:
void AnimationManager::create(const std::string& name, const Texture& texture, ..)
{
...
}
You should use emplace_back instead of push_back when you're able to construct in place:
c++ Code:
a.frames.push_back(IntRect(x + i * (w + step - 1), y, w, h));
// should be
a.frames.emplace_back(x + i * (w + step - 1), y, w, h);
Consider creating Animation in place.
c++ Code:
Animation a;
a.speed = speed;
animList[name] = a;
//vs
animList[name].speed = speed;
// or even
auto& Anim = animList[Name];
Anim.speed = speed;
another smallish optimization you could do is mark "int ClearC[225]" as static so you aren't constantly recreating it on the stack.