Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
ForenübersichtStranded II-Übersicht Scripts-ÜbersichtEinloggen, um zu antworten

Deutsch Scripting - Fragen/Probleme

6.780 Antworten
Seite
Zum Anfang Vorherige 1 238 39 40339 340 Nächste Zum Anfang

alt Re: Scripting - Fragen/Probleme

Shadowdown
User Off Offline

Zitieren
sorry das ich euch hier mit "anfängerfragen" nerve, aber das tutorial ist hmmm ich will nich sagen zu kompliziert geschrieben, aber ich meine das ihr das so im forum besser erklären könnt alls wen es nur so im tutorial steht... z.b. wen ich eine passage im tutorial nich kapiere, kann ich den script vergessen...wenn ich hier frage kann mir ein anderer es noch mal erklären und dann hab ich vielleicht bessere chancen es zu verstehen

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
is schon ok, dafür sin wir ja ne Community im Wiki gibts auch tuts, aber eher für speziele Skripts. Es kommt aber nochmehr.

Kann man in Scripts "geteilt durch" und "mal" rechnen? Wenn ja wie. Is sehr wichtig.
1× editiert, zuletzt 10.11.06 14:36:20

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
ist nicht gesagt. Hätte DC auch erst einbauen müssen. als ich es probiert habe ging meine Methode nich, kann aber auch sein dass ich nen Fehler gemacht habe.

hm, ok funzt. er kann aber nicht mit Kommazahlen rechnen. Ja ich weis das man da nen Punkt als Komma nimmt.

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
Grundsätzlich funktionieren die Grundrechenarten, auch Multiplikation und Division. Das Problem ist einfach, dass für die Variablen offensichtlich Ganzzahlen genommen werden (in BB werden auch standardmäßig Ganzzahlen für Variablen verwendet wenn man nicht explizit etwas anderes angibt, und eine Floatimplementierung gibt es in S2 nicht)
DC müsste also noch einbringen dass man Floatvariablen einsetzen kann. Ist auch für sin etc. vonnöten.
1× editiert, zuletzt 11.11.06 16:37:09

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
Ok, das mit den Kommazahlen wär halt auchnoch wichtig. Jetzt hab ichs halt umgangen aber naja.

Nächstes.
Ein Koordinatensystem, zur einfachheit mal 2d (werd auch nur x und z brauchen)

Man hat einen Punkt A auf zB 5|7

Nach oben ist 0°

Man hat einen Winkel von 56°

Man hat eine Entfernung von 6

Von Punkt A ausgehend, gibt es da eine möglichkeit die Koordinaten des neuen Punktes zu berechnen?

Das sind doch die Trigonometrischen Formeln?
Kann mir bitte mal jemand die Formell erklären wenn es denn geht?

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
Problem ist nur dass die trigonometrischen Funktionen grade wegen diesem Kommaproblem nicht richtig funktionieren. Die trig. Funktionen geben normalerweise Werte zwischen 0 und 1 zurück, durch das Problem eben nur einen dieser zwei Werte...

Aber ich werds dir trotzdem mal erklären, sollte es mal funzen:
Hier mal die Formeln für die Koordinaten des gesuchten Punkts, entsprechend deiner Situation.
x=5+6*cos(90-56)
y=7+6*sin(90-56)

Wenn du mehr Infos brauchst, schau mal auf der Robsite, da werden einige Tuts aufgelistet. Ansonsten kannst du auch hier nachfragen wenn du was nicht verstehst.
Eine Erklärung zu schreiben wäre etwas zu langwierig, deswegen der Verweis auf ein Tut.

Edit@DC: Dass es um die trigonometrischen Funktionen geht hat er ja offensichtlich so schon begriffen.

Edit²: Ich sehe grade dass die trig. Funktionen doch noch richtig funktionieren inzwischen, sie geben jetzt den 100fachen Wert zurück. Das heißt, du musst die Klausel mit dem 6*sin/cos(56) hinterher nur durch 100 teilen, dann hast du ungefähre Koordinatenwerte.
1× editiert, zuletzt 10.11.06 15:39:01

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
Kommt daher dass sin() und cos() eig. die Waagrechte als 0° ansehen, deswegen muss man das umrechnen.
Alternativ müsste es auch funzen wenn man die Funktionen einfach umtauscht, d.h. sin für X-Wert und cos für Y-Wert.

Edit: Wenn ich meinte dass da Klammern hingehören hätte ich welche hingemacht...
Nein, Klammern gehören da nicht hin und sind falsch, die werden bloß überhöhte Ergebnisse liefern.
Das mit dem 5+ und dem 7+ kommt daher, dass man ja eigentlich von einem bestimmten Punkt ausgeht und somit die errechneten Sinus/Cosinuswerte zu den alten Koordinaten hinzuzählen muss.

alt kommazahlenbehelf

Gast

Zitieren
kenn kein blitzbasic, aber man kann sich mit kommazahlen so behelfen:

cos(0.3) ist bei mir zB 0.995. (weis nicht ob ihr den Winkel in grad oder rad angeben muesst)


wenn ich das in einer ganzzahligen variable speichern will, also
x=cos(0.3)
kommt raus:
x=0 (bei mir zumindest, vielleicht rundet bb auch auf)

um das problem zu umgehen:

x=1000*cos(0.3)
fuehrt zu:
x=995

da habt ihr eure kommastellen, zumindest 3 davon als naeherung. wenn ihr mehr haben wollt, dann multipliziert nicht mit 1000 sondern 10000 oder hunderttausend. Die grenze hier nach oben ist dann nur wieviele stellen bb platz hat fuer eine ganze zahlen. sind normalerweise 8 oder 16 stellen, oder eine weniger fuers vorzeichen.

wenn ihr die zahl jetzt wieder benutzen wollt, dann schreibt einfach in jede rechnung, wo sie vorkommt anstatt x einfach x/1000 oder 10000 oder was es auch immer ist. das funktioniert deswegen, weil die nachkommastellen in der rechnung nicht verloren gehen, erst beim in eine variable schreiben.

ich hoff das hilft. bei anderen programmiersprachen gehts jedenfalls.

elmio

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
So hab ich das ja auch umgangen

noch etwas was ich nich kappiere, Fehler: Missmatched Brackets:

1
$var=sin(getyaw("unit",1));
1× editiert, zuletzt 10.11.06 15:59:33

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
@elmio: Das frühere Problem bei den trigonometrischen Funktionen war, dass sie schon von der S2-Engine her sofort einen gerundeten Wert zurückgeben, bei dem eine Multiplikation schon zu spät käme als dass sie was hälfe. Das Problem ist jetzt aber wie schon gesagt behoben, eben auf die Weise wie du das hier vorgeführt hast.

Edit@Lizard: Versuch mal den getyaw Wert erst in einer Variablen zu speichern und diese dann dem Sinus zu übergeben.
Ist wohl ein Parserbug.

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
Ups, sry, Doppelpost hab ich übersehen

an der Stelle mit msg
1
2
3
4
5
on:use {
$yaw=getyaw("unit",1);
$var=(sin($yaw));
msg "$var";
}


kann es sein das S2 einen Fehler beim Runden macht, sprich wenn er 4,2364 in eine Variable packen soll, er nich 4 sondern 0 speichert?
1× editiert, zuletzt 10.11.06 16:08:08

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
Flying Lizard hat geschrieben
an der Stelle mit msg

Das sagt mir ja viel, vor allem wenn ich dein Script nicht habe...

Auf jeden Fall wäre mir ein solcher "Rundungsfehler" alles andere als geläufig und da müsste DC schon einiges verwurstelt haben, damit sowas rauskommt.
Anders gesagt, es ist sehr unwahrscheinlich dass es so ist wie du sagtest.

Zeig am besten mal dein Script her.
Zum Anfang Vorherige 1 238 39 40339 340 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht