Ich bin gerade mit einem ähnlichen Problem beschäftigt. Und ich muss erlich sagen, ich checke das mit cos und sin einfach nicht.

Die Funktion, die den Effekt aufruft, definiert die Partikelposition auf die Player-Position und erhöht den airshield_angle von 0 auf 360 Grad. 16 ist der Radius.

Es funktioniert alles wunderbar, solange der Player nicht schwimmt, die Partikel kreisen horizontal um den Player. Wenn der Player jedoch schwimmt, muss die Kreisebene der Partikel um 90 Grad gekippt (die Partikel müssen jetzt vertikal kreisen) und am player.pan ausgerichtet werden. Und das kriege ich nicht hin.

function airshield_particle()
{
MY.BMAP = starpart2_map;
if ( (player._movemode != _mode_swimming) && (player._movemode != _mode_diving) )
{
my.x -=16*sin(airshield_angle);
my.y -=16*cos(airshield_angle);
my.z += 4 + random(4);
}
else
{
Was muss ich hier coden???

Vielen Dank für Eure Hilfe.