Forum: Multimedia
Delphi
by Medium,
13. Aug 2011
Das ist effektiv das selbe wie mein Vorschlag :) Nur, dass man mit den Kugelkoordinaten vermutlich billiger davon kommt, da man pro Gegner nur zwei trigonometrische Funktionen und 4 einfache Fallunterscheidungen machen muss*, und schon hast du "delta yaw + pitch". Wichtig ist dabei eben, dass die Distanz weg fällt, da so ein Projektil ja mit unendlicher Geschwindigkeit recht gut angenähert ist :)...
Forum: Multimedia
Delphi
by Medium,
13. Aug 2011
Ahaaa! Es geht also um einen Winkelabstand, nicht um eine Räumliche Distanz! In dem Fall wäre es ggf. hilfreich, sich mal Kugelkoordinaten anzuschauen, welche eben aus 2 Winkeln bestehen. Projeziert man nun die kartesischen Koordinaten der Gegner, und den Strahl in Blickrichtung des Spielers auf eine Einheitskugel (damit man "r" ausser Acht lassen kann, und das quasi zu einem 2D-Fall...
Forum: Multimedia
Delphi
by Medium,
12. Aug 2011
Ich muss gestehen, ich blicke gerade nicht wirklich durch deine Codefetzen, aber so prinzipiell: Dein Fadenkreuz hat 2D-Koordinaten? Dein Spieler 3D? Dann transformier doch die Spielerkoordinaten händisch in den Screenspace, und dann einfach den euklidschen Abstand. Vorausgesetzt, du willst den in Screenkoordinaten haben! Wenn nicht, wäre ggf. wichtig zu sagen, in welchem Kontext du den Abstand...