the supplied code is very ugly, but it's inside one of the players (the triangles) actions:

Code:

if (Key.isDown(Key.LEFT)) {
_rotation-=rspeed;
}
if (Key.isDown(Key.RIGHT)) {
_rotation+=rspeed;
}

everytime you press the RIGHT or LEFT arrow key, the rotation is changed according to the rspeed variable. raised if RIGHT, lowered if LEFT.

then, the angle is converted to radians

Code:

radangle=_rotation/180*Math.PI;

and whenever you press the SHIFT key, a bullet is fired:

Code:

if (Key.isDown(Key.SHIFT) && timer<1) {
shots++;
_root.level++;
duplicateMovieClip(_root.shot,"shot"+_root.level,_root.level);
mc=eval("_root.shot"+_root.level);
mc.fired=true;
<B>mc.radangle=radangle;
mc._x=_x+(Math.sin(radangle)*_width/2);
mc._y=_y-(Math.cos(radangle)*_height/2);</B>
mc.pn=pn;
timer=maxtime;
}

using trig, the bullet is placed with the proper orientation (the bold code above)