Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#2

AW: Zielsuchende Objekte

  Alt 10. Aug 2010, 21:35
Diese sollen also in einer "direkten" geraden zur Mitte laufen?

da es ja "quasi" nur in ganzen Pixeln/Feldern/Schritten geht:
- berechne die X&Y-Abstände zu dem gewünschten Zielpunkt
(z.B. x_abstand = x_zielpunkt - x_position)
- such dir den kleinesten Wert davon aus (mit abs das Vorzeichen entfernen)
- in diese Richtung gehst du dann
(if abs(x_abstand) > abs(y_abstand) then x_position=x_position+/-1 else y_position=y_position+/-1 )
- wenn wenn das Zielfeld aber schon besetzt ist, dann nimm die andere Richtung
- wenn keiner der beiden Wege möglich ist, dann entweder per Zufall in einer der verbleibenden Wichtungen gehn oder erstmal stehenbleiben
- sind beide Abstände kleiner-gleich 20, dann auch stehenbleiben


falls auch diagonal gesprungen werden darf, dann
- wenn x_abstand wesentlich größer als y_abstand und x_abstand größer 20, dann in nur x-richtung gehn
- oder wenn y_abstand wesentlich größer als x_abstand und y_abstand größer 20, dann nur in y-richtung gehn
- oder wenn x_abstand und y_abstand größer 20, dann in x und y gehn
- oder wenn x_abstand größer 20, dann in x
- oder wenn y_abstand größer 20, dann in y
- oder stehenbleiben
(auch hier die Abstände ohne Vorzeichen vergleichen)


falls es nicht ganz gerade sein soll, dann auf diesen weg eine Zielrichtung berechnen und dann per zufall eine Richtung auswählen, dabei aber natürlich in Zielrichtung den Zufall höher gewichten.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (10. Aug 2010 um 21:37 Uhr)
  Mit Zitat antworten Zitat