Handling the player's input
Lots of different things depend on the movement of the player, such as when to show the ax, when to begin animating the log, and when to move all the branches down a place. It therefore makes sense to set up the keyboard handling for the player chopping. Once this is done, we can put all the features we just mentioned into the same part of the code.
Let's think for a moment about how we detect keyboard presses. In each frame we test whether a particular keyboard key is currently being held down. If it is, we take action. If the Esc key is being held down, we quit the game, or if the Enter key is being held down we restart the game. So far, this has been sufficient for our needs.
There is, however, a problem with this approach when we try and handle the chopping of the tree. The problem has always been there, it just didn't matter until now. Depending on how powerful your PC is, the game loop could be executing thousands of times per second. Each and every pass...