Da die Richtung in der zweiten Funktion umgedreht ist, musst du den Winkel mal -1 nehmen. Außerdem ist sie ja um 90° verschoben, also musst du noch mit 90 subtrahieren. Damit das ganze im Bereich [0, 360] bleibt führst du noch eine Modulo-Operation mit 360 aus.
Code:
x = @s.x - @p.x
y = @s.y - @p.y
a = Math.atan2(y,x) * 57.295779513082
@s.angle = -(a+90) % 360
btw. was ist das für eine merkwürdige Zahl? 57.29...?

Edit: Achso, 360 / 2*Math::PI.