Diagonal attacks are in. Remember (int)(sin(45) * x). This is the way we
get even diagonals.
Also, null attacks are in. Null attacks are spawned by contradictory
attack inputs, and should generally be used to prevent crashing.
Finally, attack input is handled identically to movement input- AND
attacks can now be constant- AND knockback now looks almost right.