![]() |
Lageranimation mit einem Stapler als TBitmap
Servus und schöne Grüße an alle!
Mein Kollege und ich haben zurzeit folgendes Problem. Wir lassen per rectangle ein Lagerzeichnen und ihn mit per Zufallsgenerator mit Werten füllen. Anschließend wird per Buttonklick ein Timer aktiviert der immer wieder ein TBitmap zeichnen und wieder löscht. Diese ist unser Stapler. Das bekommen wir so weit auch hin aber wir haben das Problem das er nur im Kreis fährt und nicht per Zufallsgenerator die Gänge abfährt und per Zufall einlädt. Kann uns jemand helfen?
Delphi-Quellcode:
[edit=mkinzler]Delphi-Tag gefixt Mfg, mkinzler[/edit]
Procedure Gang1;
begin if (xakt<=640) and (yakt=35) then xAkt:=xAkt+5; // 1 Gang if (xakt=645) and (yakt<=320) then YAkt:=Yakt+5 ; // 1 Gang abwärts end; Procedure Gang2; Begin if (xakt<=645)and (yakt=125) then xAkt:=xAkt-5; // 2Gang linksherum if (xakt=5)and (yakt<=125) then yAkt:=yAkt-5; //2Gang aufwärts end; Procedure Gang3; begin if (xakt<=645)and (yakt=220) then xAkt:=xAkt-5; // 3Gang linksherum if (xakt=5)and (yakt<=220) then yAkt:=yAkt-5; //3Gang aufwärts end ; Procedure Gang4; Begin if (xakt<=645) and (yakt=320) then //4Gang linksherum xAkt:=xAkt-5; if (xakt=5) and (yakt<=320) then YAkt:=Yakt-5 ; //4Gang aufwärts end; Procedure zufaellig; var zufall:integer; Begin randomize; zufall:=random(3) ; zufall:=zufall+1; if zufall=1 then gang1; if zufall=2 then gang2; if zufall=3 then gang3; if zufall=4 then gang4; End; procedure TForm1.Timer1Timer(Sender: TObject); begin zufaellig; if True then Image1.Canvas.Draw(xAkt,yAkt,Stapler); Timer2.Enabled:=True; end; procedure TForm1.Timer2Timer(Sender: TObject); begin xAkt:=xAkt; Image1.Canvas.Draw(xAkt,yAkt,Staplerloeschen); end; |
Re: Lageranimation mit einem Stapler als TBitmap
Randomize sollte nur einmal aufgerufen werden, da sonst immer der selbe "Zufall" auftritt.
BTW: Herzlich Willkommen in der Delphi-Praxis |
Re: Lageranimation mit einem Stapler als TBitmap
Danke schön!!
Und super schnelle Antwort werde es gleich mal testen.. |
Re: Lageranimation mit einem Stapler als TBitmap
Zitat:
und würde dann keine gute/bessere Gleichverteilung der Zufallswerte mehr garantieren |
Re: Lageranimation mit einem Stapler als TBitmap
Zitat:
|
Re: Lageranimation mit einem Stapler als TBitmap
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich die Gänge einzeln Aufrufe Fährt er logischerweise im Kreis, weil ich es ihm ja in der if Abfrage sage.
Also wenn ich in den Timer Gang1 und Gang 2 aufrufe. Aber wenn ich es mit dem Random befehl mache ruckelt es bzw. fährt langsamer und fährt auch aus dem Bild raus. Ein Bild ist angehängt. |
Re: Lageranimation mit einem Stapler als TBitmap
Zitat:
Randomize initialisiert mit GetTickCount und seit 'ner Weile auch mit QueryPerformanceCounter (falls verfügbar) und Beides sollte sich mindestens genauso schnell ändern, wie der Timer, also immer wieder andere Initialwerte liefern :gruebel: |
Re: Lageranimation mit einem Stapler als TBitmap
Wie können wir den Stapler denn die ganze zeit durch lager fahren lassen und durch zufall einlagern?
|
Re: Lageranimation mit einem Stapler als TBitmap
Such mal nach dem Stichwort Pathfind
Das würde sich hierfür eher anbieten als mit zufall zu arbeiten. Start und endpunkt angeben und mit dem Algo den stabler selbst den besten weg finden lassen. Oder hier aus der Codelib ![]() gruss Emil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz