We are going to improve the user input and we are going to do it by creating a virtual joystick.
A virtual joystick measures the distance from the touch position to its center and uses this information to set the values on the two axes. It behaves as a traditional analog joystick.
Since it is virtual, we are not constrained to have it at a specific position on the screen, so we can place it anywhere the player touches it.
We cannot, however, take the entire screen for the virtual joystick. There needs to be a fire button too.
We have experienced the frustration of small touch targets, so we are going to make the fire button as big as we can. This means that we are going to use half the screen for the virtual joystick and ...