| Autor |
Beitrag |
axja
Hält's aus hier
Beiträge: 15
|
Verfasst: Mi 12.03.03 19:44
hmm, kann mir zufällig wer helfen, oder sagen wo ich beißpiele bekomme?
ich möchte ein object dazu kriegen dass es sich immer in die richtung der maus bewegt, bis es bei ihr ankommt. wenn möglich solte es sich je weiter die maus weg ist desto schneller bewegen...
ich hab aber absolut keine idee wie ich das (vorallem ersteres) machen kann... vieleicht wer n par tips oder so? 
|
|
Raphael O.
      
Beiträge: 1596
VS 2013
|
Verfasst: Mi 12.03.03 19:49
wo zeichnest du denn dein Objekt??
auf einem Image??
|
|
axja 
Hält's aus hier
Beiträge: 15
|
Verfasst: Mi 12.03.03 21:48
|
|
Raphael O.
      
Beiträge: 1596
VS 2013
|
Verfasst: Do 13.03.03 18:37
wenn du die Position von deinem Objekt auf dem Image weist, dann musst du bei image1.mousedown die Koordinaten des Klicks mit denen des Objekts vergleichen-> den Abstand ausrechen->daraus eine Geschwindigkeit errechnen->Objekt bewegen
|
|
axja 
Hält's aus hier
Beiträge: 15
|
Verfasst: Do 13.03.03 19:59
ja, das ginge, danke für die idee, aber dazu brauche ich einen klick... ich möchte aber das es den cursor die ganze zeit verfolgt, wie diese desktop-katze die die ganze zeit hinter der maus herrent, kennst du?
aber danke schonmal, vieleicht noch ne idee?
|
|
mars
      
Beiträge: 238
Debian Woody, Win 2000, Win XP
D7 Ent, Kylix 3
|
Verfasst: Do 13.03.03 20:00
Du könntest mit einem Timer die Mausposition abfragen.
|
|
Andreas Pfau
      
Beiträge: 997
|
Verfasst: Do 13.03.03 20:34
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var X, Y: Integer;
procedure TForm1.Timer1Timer(Sender:TObject); begin If (X <> Mouse.CursorPos.X) Or (Y <> Mouse.CursorPos.Y) Then begin X := Mouse.CursorPos.X; Y := Mouse.CursorPos.Y; BildMitNeuenKoordinatenZeichnen(); end; end; |
Oder du machst 'nen Hook. Aber wich würde den Timer arg empfehlen.
_________________ Life is a bad adventure, but the graphic is really good!
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Do 13.03.03 21:04
-1x timer (timer1)
-1x image (image2)
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| procedure TForm1.FormCreate(Sender: TObject); begin form1.DoubleBuffered :=true; end;
procedure TForm1.Timer1Timer(Sender: TObject); var mouseX, mouseY, imageX, imageY, imageH, imageW, MovementX, MovementY, formx, formy: integer; begin imageh := image2.Height; imagew := image2.Width; formx := form1.Left + (imagew div 2)+3; formy := form1.top + (imageh div 2) + 15; mousex := mouse.CursorPos.x - formx; mousey := mouse.CursorPos.y - formy; imagex:= image2.Left; imagey:= image2.top; if imagex < mousex then begin movementx := (imagex - mousex) div 7; imagex :=imagex - movementx; end else if imagex > mousex then begin movementx := (mousex - imageX) div 7; imagex :=imagex + movementx; end; if imagey < mousey then begin movementy := (imagey - mousey) div 7; imagey :=imagey - movementy; end else if imagey > mousey then begin movementy := (mousey - imagey) div 7; imagey :=imagey + movementy; end;
image2.Left := imagex; image2.Top := imagey;
end; |
der code ist net perfect, ich werde ihn noch verbessern
|
|
axja 
Hält's aus hier
Beiträge: 15
|
Verfasst: Fr 14.03.03 15:39
JAA, das sind gute ideen, dankeschön! ich werd's gleich probieren!
|
|
axja 
Hält's aus hier
Beiträge: 15
|
Verfasst: Fr 14.03.03 15:39
ps: viiiellen DANK!! 
|
|
axja 
Hält's aus hier
Beiträge: 15
|
Verfasst: Fr 14.03.03 16:09
hey, leute!
Habs mit nem timer probiert, das war's, es geht!!
danke schön! 
|
|