AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Lageranimation mit einem Stapler als TBitmap
Thema durchsuchen
Ansicht
Themen-Optionen

Lageranimation mit einem Stapler als TBitmap

Ein Thema von DrDelphi · begonnen am 2. Jun 2009 · letzter Beitrag vom 2. Jun 2009
Antwort Antwort
DrDelphi

Registriert seit: 2. Jun 2009
4 Beiträge
 
#1

Lageranimation mit einem Stapler als TBitmap

  Alt 2. Jun 2009, 11:41
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:
    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;
[edit=mkinzler]Delphi-Tag gefixt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Lageranimation mit einem Stapler als TBitmap

  Alt 2. Jun 2009, 11:45
Randomize sollte nur einmal aufgerufen werden, da sonst immer der selbe "Zufall" auftritt.

BTW: Herzlich Willkommen in der Delphi-Praxis
Markus Kinzler
  Mit Zitat antworten Zitat
DrDelphi

Registriert seit: 2. Jun 2009
4 Beiträge
 
#3

Re: Lageranimation mit einem Stapler als TBitmap

  Alt 2. Jun 2009, 11:51
Danke schön!!
Und super schnelle Antwort werde es gleich mal testen..
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#4

Re: Lageranimation mit einem Stapler als TBitmap

  Alt 2. Jun 2009, 11:53
Zitat von mkinzler:
Randomize sollte nur einmal aufgerufen werden, da sonst immer der selbe "Zufall" auftritt.
"selbe" nicht grad, aber der Zufallsgenerator würde dann jedesmal neu initialisiert (mit der grad aktuellen Systemzeit)

und würde dann keine gute/bessere Gleichverteilung der Zufallswerte mehr garantieren
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Lageranimation mit einem Stapler als TBitmap

  Alt 2. Jun 2009, 11:55
Zitat:
selber nicht grad, aber der Zufallsgenerator würde dann jedesmal neu Initialisiert (mit der aktuellen Systemzeit)
Bei solch kurzen Abständen schon. Deshalb fährt er auch im Kreis
Markus Kinzler
  Mit Zitat antworten Zitat
DrDelphi

Registriert seit: 2. Jun 2009
4 Beiträge
 
#6

Re: Lageranimation mit einem Stapler als TBitmap

  Alt 2. Jun 2009, 12:09
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.
Miniaturansicht angehängter Grafiken
lager_672.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#7

Re: Lageranimation mit einem Stapler als TBitmap

  Alt 2. Jun 2009, 12:20
Zitat von mkinzler:
Bei solch kurzen Abständen schon.
ich seh keine "zu" kurzen Abstände

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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
DrDelphi

Registriert seit: 2. Jun 2009
4 Beiträge
 
#8

Re: Lageranimation mit einem Stapler als TBitmap

  Alt 2. Jun 2009, 12:31
Wie können wir den Stapler denn die ganze zeit durch lager fahren lassen und durch zufall einlagern?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

Re: Lageranimation mit einem Stapler als TBitmap

  Alt 2. Jun 2009, 14:15
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
PathFind

gruss Emil
  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:43 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