In that case, Cocos2d-x will likely meet your needs.
I've never heard of this before. Is this a popular tool used among mobile game developers?
Cocos2d-x is a pretty common choice for mobile game development at this point mainly because if you want the following:
it currently is your only option.
If you don't want cross-platform, just want iOS, then you can use real cocos2d (formerly cocos2s-iphone) in Objective-C which is more mature. If you are willing to pay, you can use Marmalade which (I'm guessing) is a cleaner platform. If you don't care about C++ there are frameworks in which you write in a scripting language (lua, etc.), some of which are free (i think) but you won't have the kind of control you have in a native framework.
Otherwise, you can roll your own or you can use cocos2d-x.
I've been working with cocos2d-x for a few months now. My opinion of it is that it has a lot of warts but ultimately has solid bones. I haven't ran into any problems that I couldn't find a fix or at least a work-around for, no deal-breakers anyway, but it is also not the easiest large library/platform/framework type thing I have used. It is very much a work in progress; it's documentation is non-existent mostly. It's forums are active but the level of dialogue you get there is a mixed bag. Generally if you can't find sample code demonstrating how to do something you want to do, you have to read the cocos2d-iphone documentation and try to "port" the knowledge you gain back to cocos2d-x by reading its source code. I can imagine doing this sort of thing would be hard for beginners to programming, but it's not that big of a deal.
The main thing is understanding cocos2d-x's somewhat unintuitive memory manager and then you are all set.