Kopiere dies in deine Signatur, um es in deiner Signatur zu haben. Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
Nach langer zeit wieder im Forum aktiv
glaubst du oder weißt du? nee, mal im ernst, teste das doch einfach
Kopiere dies in deine Signatur, um es in deiner Signatur zu haben. Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
Nach langer zeit wieder im Forum aktiv
Wenn man move_towards_point() benutzt, muss man das Objekt auch wieder stoppen. Einfach im else zweig die Variable "speed" auf 0 setzen. Sollte dann klappen.
Ich werf mal eben eine theoretische Situation in den Raum:
Die Entfernung zwischen Objekt A und B beträgt 1.01 und SPEED hat den Wert 2.02 - damit sind die beiden auf jeden Fall immer weit genug voneinander weg, um wieder aufeinander zuzuschießen, aber treffen werden sie sich trotzdem nicht.
Ich würde also nicht unbedingt 1 als den Schwellwert für diese Bewegung benutzen. Eher was, was zuverlässigererweise im absehbaren Bereich der Entfernungen liegt.
So, ich melde mich ein wenig spät, aber ich habe das Problem gelöst(danke McGamecake).
Allerdings "widersetzt sich der gegner nun den physikalischen Gesetzen", sodass er zum Beispiel im Boden versinkt, obwohl er bei Bodenkollision stehenbleiben soll, oder irgendwo durch die Gegend fliegt, bevor er dann schliesslich aus der Stage herausfliegt.
naja, woher soll denn die Funktion move_towards_point wissen, dass du einen platformer programmierst und kein top-down spiel?
Lies dir mal das hier durch. Damit kannst du dein Problem lösen.
oder du lässt deinen Gegner sich in der horizontalen bewegen solange seine y Koordinate nicht mit der Spieler.y Koordinate übereinstimmt. Irgendwann fällt er dann runter oder geht eine Treppe rauf und trifft mitunter auf den Spieler. Bzw hat hoffentlich überprüft ob der Spieler sich links oder rechts von ihm befindet und sich dementsprechend bewegt.