You have a lot of different options as to what to use. If you want to make a 2d game, I would reccomend Objective C as your language and Cocos2d as your framework.
Better use SDL2.0. It's a crossplatform library so you can port it easily to other platforms. C or C++ is the language of choise when programming games.
C++. Learn to program well before you learn to program "games." Learn the language, then apply it to game dev. Use SDL, SMFL, and especially OpenGL for either 2D or 3D. Everything that can be done in 2D has been done in 2D.
You are in way over your head. One thing at a time.. or you can just use a tool like Unity or some other game maker program. Do you have the patience to teach yourself everything you will need to learn in order to make exactly what you want? Prepare yourself to study for years and don't be shocked. The more you learn, the faster you will learn. And don't feel frustrated if for the first couple of months or even the first year of learning C/C++ you are just making command line programs. You have to start somewhere and it is usually at the beginning.. Not by trying to make full fledged games. You won't be making anything that looks like a game until you've made several hundred other types of applications in C or C++ for the command prompt. Just get used to that :-)