Hi SierraKen,
For angle, I'd make the allowable range between 0 and 90 degrees. Nice that you figured to subtract the input angle from 360 degrees.
I have worked out a way to set angle with mouse and to use up and down arrow keys to change speed so there is no input for extra enter key press.
The cannon should adjust it's angle to the input angle before firing in my opinion.
The math for that:
If the angle input is 20 degrees then subtract from 360 = 340 as you have done for firing the projectile.
Convert 340 degrees to radians: use _D2R(340) or 340 * _PI / 180, now you have a number SIN and COS can use.
Say the cannon length is 100 then the X coordinate will be ( with butt end coord's (bx, by) )
exit end = bx + 100 * COS(_D2R(340))
exit end = by - 100 * SIN(_D2R(340)) because raising the cannon mouth is decreasing the y coordinate value.
BTW you must have a giant screen, on my laptop I reduce x to 1200 and y to 700. :)