AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt bewegen?!

Ein Thema von Jonas · begonnen am 5. Jul 2007 · letzter Beitrag vom 5. Jul 2007
Antwort Antwort
Jonas

Registriert seit: 5. Feb 2005
266 Beiträge
 
Delphi 2007 Professional
 
#1

Objekt bewegen?!

  Alt 5. Jul 2007, 00:30
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.
  Mit Zitat antworten Zitat
Benutzerbild von Niels14
Niels14

Registriert seit: 28. Dez 2005
Ort: Sydney/Australien
18 Beiträge
 
Delphi XE4 Enterprise
 
#2

Re: Objekt bewegen?!

  Alt 5. Jul 2007, 06:24
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
Niels Maschmeyer
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Objekt bewegen?!

  Alt 5. Jul 2007, 07:27
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
Angehängte Dateien
Dateityp: zip hamster_136.zip (6,1 KB, 29x aufgerufen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
5. Jul 2007, 07:31
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "Object-Pascal / Delphi-Language" verschoben.
Jonas

Registriert seit: 5. Feb 2005
266 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Objekt bewegen?!

  Alt 5. Jul 2007, 11:18
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 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 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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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