Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Game Maker Domäne. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

mauge

Neujahrs-Contest-Sieger 2009

  • »mauge« ist der Autor dieses Themas

Beiträge: 2 806

  • Private Nachricht senden

1

Sonntag, 22. November 2009, 14:03

point_distance_3d

Hallo zusammen,

da in Moolt's jüngstem Tutorial Partikel die Frage aufkam, wie man die Entfernung zweier Punkte im dreidimensionalen Raum ermittelt, hab ich mich mal rangesetzt. Standardmäßig bietet der GM folgende Funktion für 2D Spiele (nur x & y):

GML

1
point_distance(x1, y1, x2, y2);

Mein Script funktioniert genauso, allerdings kommt die z-Koordinate hinzu:

GML

1
point_distance(x1, y1, z1, x2, y2, z2);

Es gibt wie auch die Standardfunktion die Entfernung der 2 Punkte zurück.

Ausgiebig prüfen konnte ich es jetzt nicht. Wenn ihr Fehler entdeckt, teilt es mir bitte mit. Dankeschön!
»mauge« hat folgende Datei angehängt:
█████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
█████ ███████ ███ your █████ ████ government.

Bl@ckSp@rk

***Gold***

Beiträge: 1 133

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Experte

Danksagungen: 31

  • Private Nachricht senden

2

Sonntag, 22. November 2009, 14:20

Eine andere Möglichkeit wäre der Einzeiler:

GML

1
return sqrt(sqr(argument3-argument0)+sqr(argument4-argument1)+sqr(argument5-argument2));

Deine Abfragen und der Betrag sind nicht notwendig, mauge, da man ja sowieso quadriert ;)
(Vielleicht irre ich mich, da du power verwendest und da auch gebrochene Exponenten erlaubt sind. Dann muss natürlich die Basis nichtnegativ sein.)

mauge

Neujahrs-Contest-Sieger 2009

  • »mauge« ist der Autor dieses Themas

Beiträge: 2 806

  • Private Nachricht senden

3

Sonntag, 22. November 2009, 14:26

Tse, dass du wieder mit einem langweiligen Einzeiler daher kommst, war ja zu erwarten. :D
Naja, wenigstens weiß ich jetzt, dass mein Lösungsweg richtig ist. Ich hab mir Sorgen wegen negativer Werte gemacht und bin auf Nummer Sicher gegangen. Aber scheinbar muss man das dann gar nicht.
█████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
█████ ███████ ███ your █████ ████ government.