   2D Puzzle game
  Okay so basically I am working on a 2D puzzle game in C++.I know how to do collision detection, gravity, and rotation.What I want to happen is if a puzzle piece is placed with the center point over the edge of the puzzle piece it was placed on, I want it to rotate and fall over (speed of rotation depending on how far out the center point is from the puzzle piece it is placed on). Actually now after trying to explain what I want to do I have an idea, but feel free to give me extra ideas encase my idea doesn't work. lol   