Nochmal @SuperVegeta
Hallo, da bin ich wieder!
Also hier mal eine Kurzerklärung zum Script:
Variablendefinition:
$a - der in der späteren Schleife verwendete Zähler (Zeile 5 setzt sozusagen nur einen definierten Grundzustand)
$r - der Radius (create ship arbeitet mit Metern - in dem Fall also 1km Abstand zu Playership-Mittelpunkt)
$sw - die Schrittweite (willst Du 16 Objekte aussetzen also 65536/16 == 4096 -> bei mir müßten es demzufolge 32 sein)
Zeile 008 - die erste Zeile der eigentlichen Schleife (führe aus, solange kleiner Vergleichswert)
Zeile 013 - hier wird der Schleifenzähler mit der vorgegebenen Schrittweite erhöht
Zeile 015 - das Ende der Schleife
Zeile 014 - Zur Demonstration habe ich eSat's gewählt und erzeugt
weitere Erklärung:
Die Winkelfunktionen (sin/cos) liefern normalerweise Werte im Bereich von -1...0...1.
Da in einem Integer/Quad nur ganze Zahlen gespeichert werden können, hat sich Ego entschieden die Werte mit 65536 zu Multiplizieren, der Wertebereich ist also -65536...0...65536 (o. auch 65535 - ich mußte es auch erst ertesten also bitte nicht auf dem Wert festnageln

) - deshalb auch die Division durch 65536 in den Zeilen 010/012 - normalerweise braucht man die nicht.
Jetzt kommt etwas was ich Ego etwas übel nehme, die Winkelfunktionen (u. auch Winkelberechnungen) arbeiten üblicherweise mit Altgrad (360° == eine komplette Schwingung), Neugrad (400° == eine komplette Schwingung) o. Bogenmaß (2*Pi == eine komplette Schwingung).
Aus einem mir nicht wirklich ersichtlichen Grund (vermutlich interner 16bit-Überlauf zur Werterückführung in die erste Amplitude genutzt) wurde in X3 2^16 Schritte gewählt, es ist somit kein sinnvolles Vielfaches irgendeiner Maßgrundlage u. erfordert immer eine (unübersichtliche) Umrechnung - willst Du praktisch Punkte in 10° Abständen erhalten, mußt Du 65536/360°*10° rechnen).
In den Zeilen 009/011 werden die sin/cos Werte ermittelt u. in den Offset-Variablen abgelegt (der cos ist eigentlich nur ein um 1/4 Wellenlänge verschobener sin -> in X3 also cos(x) == sin(x+16384)
die Zeilen 010/012 machen die eigentliche Berechnung, Bsp. x-Koordinate:
X-Koordinate = x-Mittelpunkt + x-Offset * Radius / 65536 (der letzte Wert ergibt sich um den gelieferten Wert wieder auf den normalen Wertebereich zurückzuführen, unbeding erst "*" dann "/" sonst geht Dir der Nachkommateil verloren).
MfG Mike