Hi zusammen,
mein Problem klingt erst mal einfach, aber ich habe nirgends einen Weg gefunden, um es zu lösen.
Ich suche einen Weg, die dem Spieler nächstgelegene Instanz zu ermitteln, unter den Bedingungen, dass ich weder die Anzahl der vorhandenen Instanzen und Objekte, noch deren Bezeichnungen im Vorhinein kenne.
Also, Grundlage ist ein Shooter. Eine der Waffen die man verwenden kann ist ein Geschütz. Das Geschütz soll automatisch auf den nächstgelegenen Gegner zielen und feuern, sobald man die entsprechende Taste drückt. Ich habe einen Algorithmus, der mir die Koordinaten eines Objekts relativ zum Ursprungsschiff ermittelt, und daraus dann einen Winkel für den "direction"-Wert errechnet. Das funktioniert auch hervorragend, wenn es sich um ein Feindschiff handelt, das auf den Spieler schießt (von dessen Schiff natürlich nur eine Instanz existiert). Aber ich habe keine Ahnung, wie ich festlege, auf welches Objekt das Geschütz feuern muss, wenn es mehr als nur ein potentielles Ziel gibt.
Grundsätzlich ist es so, zu jeder Zeit habe ich eine variierende Zahl Objekte im Raum (Feinde und Hintergrundzeug). Ich weiß nicht, wieviele anvisierbare Objekte zum Zeitpunkt des Feuerns im Raum sein werden (wenn keine da sind feuert es einfach nicht), und ich weiß auch nicht, welche Objekte das sein werden, da beides ständig variiert.
Ich weiß, dass ich mit "distance_to_object(obj)" zwar die Distanz zu einer Instanz bestimmen kann. Allerdings muss ich der Funktion ein konkretes Objekt vorgeben. Dummerweise weiß ich aber nicht, welches Objekt bzw. Instanz im Moment des Feuerns am nächsten sein wird. Außerdem kann man davon ausgehen, dass die meiste Zeit über mehr als eine Instanz des selben Objekts/Gegners im Raum sein wird. Also brauche ich quasi eine Methode, die mir die nächstgelegene Instanz zurückliefert, die als Gegner/anvisierbar markiert ist (z.B. durch eine Variable var_is_enemy={true;false}). Genauer gesagt, die Koordinaten dieser Instanz, die ich dann in meine Koordinaten-zu-Winkel-Funktion einsetzen würde.
Kennt irgendjemand einen Weg, das umzusetzen? Ich wäre echt dankbar dafür.
~Raen out...
mein Problem klingt erst mal einfach, aber ich habe nirgends einen Weg gefunden, um es zu lösen.
Ich suche einen Weg, die dem Spieler nächstgelegene Instanz zu ermitteln, unter den Bedingungen, dass ich weder die Anzahl der vorhandenen Instanzen und Objekte, noch deren Bezeichnungen im Vorhinein kenne.
Also, Grundlage ist ein Shooter. Eine der Waffen die man verwenden kann ist ein Geschütz. Das Geschütz soll automatisch auf den nächstgelegenen Gegner zielen und feuern, sobald man die entsprechende Taste drückt. Ich habe einen Algorithmus, der mir die Koordinaten eines Objekts relativ zum Ursprungsschiff ermittelt, und daraus dann einen Winkel für den "direction"-Wert errechnet. Das funktioniert auch hervorragend, wenn es sich um ein Feindschiff handelt, das auf den Spieler schießt (von dessen Schiff natürlich nur eine Instanz existiert). Aber ich habe keine Ahnung, wie ich festlege, auf welches Objekt das Geschütz feuern muss, wenn es mehr als nur ein potentielles Ziel gibt.
Grundsätzlich ist es so, zu jeder Zeit habe ich eine variierende Zahl Objekte im Raum (Feinde und Hintergrundzeug). Ich weiß nicht, wieviele anvisierbare Objekte zum Zeitpunkt des Feuerns im Raum sein werden (wenn keine da sind feuert es einfach nicht), und ich weiß auch nicht, welche Objekte das sein werden, da beides ständig variiert.
Ich weiß, dass ich mit "distance_to_object(obj)" zwar die Distanz zu einer Instanz bestimmen kann. Allerdings muss ich der Funktion ein konkretes Objekt vorgeben. Dummerweise weiß ich aber nicht, welches Objekt bzw. Instanz im Moment des Feuerns am nächsten sein wird. Außerdem kann man davon ausgehen, dass die meiste Zeit über mehr als eine Instanz des selben Objekts/Gegners im Raum sein wird. Also brauche ich quasi eine Methode, die mir die nächstgelegene Instanz zurückliefert, die als Gegner/anvisierbar markiert ist (z.B. durch eine Variable var_is_enemy={true;false}). Genauer gesagt, die Koordinaten dieser Instanz, die ich dann in meine Koordinaten-zu-Winkel-Funktion einsetzen würde.
Kennt irgendjemand einen Weg, das umzusetzen? Ich wäre echt dankbar dafür.
~Raen out...
"Also ICH würde das so machen. Darum ist es anders." - persönliches Zitat