Steering Hide, Interpose

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@hell: Das verschiedene Datentypen Methoden mit den gleichen Namen haben verwirrt vielleicht Dich, aber ganz sicher nicht den Compiler/Python, denn das ist normal. Das man das machen kann ist einer der Vorteile von objektorientierter Programmierung. Stichwort: Polymorphie.

Und es ist auch nicht so ungewöhnlich, dass man Klassen hat und darauf Methoden definiert deren AUfruf mehr oder weniger 1:1 an einen Bestandteil des Objekts durchgereicht wird. Es macht bei `Wall`- und `Vehicle`-Objekten Sinn den Abstand zwischen beiden zu berechnen, und dafür macht der Methodenname `distance_to()` Sinn. Genau so wie es Sinn macht den Abstand zwischen zwei Ortsvektoren vom Typ `Vector2` zu berechnen, und da ist ebenfalls `distance_to()` ein passender Name. Und wenn `Wall`/`Vehicle` ihre Position mit einem `Vector2` beschreiben, wird die `distance_to()` von `Wall`/`Vehicle` natürlich die `Vector2.distance_to()` zur Berechnung heranziehen.

Was man da eigentlich noch machen müsste, wäre die Radii von den beiden beteiligten Objekten abziehen um den Abstand genauer zu berechnen. Und spätestens an der Stelle macht es auch wirklich Sinn das in einer Methode auf `Wall`/`Vehicle` zu machen und nicht immer von Aussen auf die `location` zuzugreifen wie Du das gemacht hast, denn das mit den Radii müsste man dann überall hinschreiben wo man den Abstand zwischen den Objekten berechnen will.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@hell: Noch ein Nachtrag: Vielleicht solltest Du besser von Deinem Code ausgehen statt bei meinem ”Rückbau” zu betreiben, da ich ja wie gesagt nicht weiss ob ich nicht noch irgendwo etwas kaputt gemacht habe, beim umschreiben ohne Testläufe.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
hell
User
Beiträge: 40
Registriert: Montag 1. Oktober 2018, 18:01

hallo _blackjack_,
danke für deine Antwort.
Meine nächsten 'Projekte' werden sein, zunächst die Programm zu den einzelnen Steering Behaviors von allem redundanten Code zu 'befreien'. Und OOP lernen. Vielleicht komme ich dann irgendwann dahin alle Themen, die du empfohlen hast, auch umzusetzen.
grüsse hell
Antworten