Hi mimi,
es wär aber besser, Gegner im Umkreis von z.B. 500 Pixel zu finden:
Ich nehme jetzt einfach an, dass Player[0] der PC-Spieler ist, und der Rest KI-Spieler.
Delphi-Quellcode:
for i := 1 to Players.Count-1 do
begin
if Players[0].Team <> Players[i].Team then
begin
if Sqr(Players[0].Position.X-Players[i].Position.X)+Sqr(Players[0].Position.Y-Players[i].Position.Y) > Sqr(Umkreis) then
//Gegner markieren
end;
end;
Hier werden nur Spieler überprüft, die nicht im Team des PC-Spielers sind. Die if-Abfrage berechnet den Abstand zwischen den Spielern, und vergleicht ihn mit dem maximalen Abstand (Umkreis). Dieser muss quadriert werden, außer du willst die Wurzel des linken Teils des Vergleichs ziehen. Hier fehlt allerdings noch eine Überprüfung, ob ein Objekt im Weg ist. Das wird schon etwas komplizierter.
Greetz
alcaeus