Autor Beitrag
axja
Hält's aus hier
Beiträge: 15



BeitragVerfasst: 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? :D
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: Mi 12.03.03 19:49 
wo zeichnest du denn dein Objekt??
auf einem Image??
axja Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 12.03.03 21:48 
si!
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 238

Debian Woody, Win 2000, Win XP
D7 Ent, Kylix 3
BeitragVerfasst: Do 13.03.03 20:00 
Du könntest mit einem Timer die Mausposition abfragen.
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Do 13.03.03 20:34 
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 461



BeitragVerfasst: Do 13.03.03 21:04 
-1x timer (timer1)
-1x image (image2)


ausblenden volle Höhe Quelltext
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 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 14.03.03 15:39 
JAA, das sind gute ideen, dankeschön! ich werd's gleich probieren!
axja Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 14.03.03 15:39 
ps: viiiellen DANK!! :wink:
axja Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 14.03.03 16:09 
hey, leute!
Habs mit nem timer probiert, das war's, es geht!!
danke schön! :D :)