Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objekt bewegen?! (https://www.delphipraxis.net/95322-objekt-bewegen.html)

Jonas 5. Jul 2007 00:30


Objekt bewegen?!
 
Hey. Ich bin gerade dabei eine Art kleinen *Hamster* zu programmieren. Dieser soll sich ganz individuell bewegen. Stehe aber irgendwie auf dem Schlauch. Es ist ein Timage, welches man ja mit Left := Left +1 etc bewegen kann.
Zum einen wollte ich fragen wie man das Objekt so bewegen kann das es mehrere *kleine* schritte geht? Zum anderen wollte ich fragen was die beste möglichkeit ist, das sich das Objekt *frei* bewegt. Ich hatte eigentlich nicht vor das der Hamster mehrere routen laufen kann sondern sich frei bewegen kann. Das Problem ist wenn ich es per *random* mache, dann läuft er 2 nach oben, zwei nach links, zwei nach rechts, aber er läuft keine wirkliche strecke.

Niels14 5. Jul 2007 06:24

Re: Objekt bewegen?!
 
Hi,

Zu 1:
damit er mehrere kleine Schritte macht koenntest Du ja das TImage mehrmals bewegen und dazwischen die Funktion Sleep aufrufen.

Zu 2:
Aber wenn Du dem *Hamster* eine eigene Logik geben willst, koenntest Du dafuer ja verschiedene Skripte schreiben die den Weg des Hamsters beschreiben.
Je nach Status koenntest Du dann verschiedene Skripte laden und ihn den Weg laufen lassen.
oder
Du benuetzt Random um die Richtungsaenderung zu bestimmen/gewichten. Dann wuerde er die Route genauer einhalten und nicht sofort kreuz und quer laufen.
Vielleicht anschaulicher: Erstelle einen virtuellen Richtungsvektor in der der Hamster immer laeuft und veraender ihn je nach dem was random dir ausgibt. Wenn er mehr stabiler laufen soll dann lass ihn nur die Richtung rechts/link staerker/schwaecher wechseln wenn ein kleiner Zufallsbereich generieriert wird.

LG Niels

SirThornberry 5. Jul 2007 07:27

Re: Objekt bewegen?!
 
Liste der Anhänge anzeigen (Anzahl: 1)
um den "Hamster" schrittweise bewegen zu lassen könntest du die Bewegung in einem Timer machen.
Und damit er Strecken läuft suchst du per Random einfach einen Zeilpunkt und läufst dann so lange schrittweise dort hinn bis er da ist. wenn er am ziel angekommen ist wird der nächste Zielpunkt per Random gesucht.

Im Anhang mal ein Beispiel

DP-Maintenance 5. Jul 2007 07:31

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "Object-Pascal / Delphi-Language" verschoben.

Jonas 5. Jul 2007 11:18

Re: Objekt bewegen?!
 
Zitat:

Zitat von Niels14
Hi,

Zu 1:
damit er mehrere kleine Schritte macht koenntest Du ja das TImage mehrmals bewegen und dazwischen die Funktion Sleep aufrufen.

Daran habe ich auch schon gedacht, es auch schon versucht, aber danach schläft ja dann meine komplette Anwendung und das ist nicht das was ich gerne hätte.

Zitat:

Zitat von Niels14
Du benuetzt Random um die Richtungsaenderung zu bestimmen/gewichten. Dann wuerde er die Route genauer einhalten und nicht sofort kreuz und quer laufen.
Vielleicht anschaulicher: Erstelle einen virtuellen Richtungsvektor in der der Hamster immer laeuft und veraender ihn je nach dem was random dir ausgibt. Wenn er mehr stabiler laufen soll dann lass ihn nur die Richtung rechts/link staerker/schwaecher wechseln wenn ein kleiner Zufallsbereich generieriert wird.

Richtungsvektor? oô
Ja so in der Art hatte ich das ja auch vor gehabt!

Zitat:

Zitat von Niels14
um den "Hamster" schrittweise bewegen zu lassen könntest du die Bewegung in einem Timer machen.
Und damit er Strecken läuft suchst du per Random einfach einen Zeilpunkt und läufst dann so lange schrittweise dort hinn bis er da ist. wenn er am ziel angekommen ist wird der nächste Zielpunkt per Random gesucht.

Er bewegt sich ja schon in einem Timer. Das doofe ist ja, das er dann immer Hin und Her läuft.
Hmm joa ich werds mir mal genau anschauen, das mit dem Zielpunkt wäre auch eine Möglichkeit. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz