Why direction calculator?
While pressing right and not facing right: direction = direction - 1
While pressing left and not facing left: direction = direction + 1
Is a better solution
Yeah this is easy enough. On pressing a direction, set an alterable value of that object to the numerical value equivalent to that direction (right=0, up=8, left=16, down=24). Then compare the current direction to this value and rotate towards it in the direction that would take it there closest, either with a couple of events or the Direction Calculator extension.
Here's a method that uses the direction calculator. My version did it without any extensions, but I can't be arsed remembering how exactly:
Keyboard: pressed right
---Active: set alterable value A to 0
Keyboard: pressed up
---Active: set alterable value A to 8
Keyboard: pressed left
---Active: set alterable value A to 16
Keyboard: pressed down
---Active: set alterable value A to 24
[Do the same thing for diagonals if you like]
Direction("Active") <> Alterable Value A("Active")
---Direction Calculator: rotate Active towards direction Alterable Value A("Active")
There, easy. Pretty sure that would work. For the actual movement of Active, either use a custom movement or always set Active to the position of an invisible object with 8-directional movement (or set it to the position of an invisible one with custom movement, which would be ideal for collision detection).
Wow, that's totally not what everyone though you were asking for.
Yes, you'll need to have an animation for each direction, otherwise there's nothing to display and TGF'll use the next-nearest animation.
To do what you want, you'd probably just need to do something like this:
Keyboard: pressed left
+direction("active")<16
---Active: set direction to direction("active")+1
Keyboard: pressed right
+direction("active")>0
---Active: set direction to direction("active")-1
That'll give you 16 possible directions, but you probably want more. So use an active picture and rotate it to the correct angle in a similar way. For the actual shooting, look up an article on 360 degree bullets.
Something I remember doing in TGF for a 360 degree turret was to make the muzzle out of a line of closely-spaced little grey circles that rotate around a central point using trig. There are a couple of ways you can represent it.