Objekt bewegen (Mausposition)

DonBronson

Mitglied
Hallo zusammen,

ich bewege aktuell meine gezeichneten Rechtecke, wenn ich "dragge".
Dabei werden die x- und y-Position der Rechtecke gleich der x- und y-Koordinaten der Maus gesetzt. Somit ist aber die Maus natürlich immer in der linken oberen Ecke des Rechtecks.

screen.PNG

screen1.PNG

Nun will ich aber, dass die Maus genau dort bleibt im Rechteck, wo ich auch zum Draggen ansetze. Dazu berechne ich einfach den Abstand vom Mauspunkt zum Koordinatenpunkt des Rechtecks oben links und sette die Koordinaten des Rechtsecks gleich der Maus-Koordinaten minus diesen Abstand.

screen2.PNG

Nun bewegt sich aber leider gar nichts mehr. Hat hier jemand Ideen und kann helfen?
 
Du musst beim MouseDown den Offset innerhalb des Rechtecks speichern, und dann das Rechteck immer auf die Position minus diesen Offset setzen. Etwas Pseudo-Code:

Java:
Point mouseOffset = null;

// MouseDown
mouseOffset.x = e.x; // Wenn relativ zu Rechteck, ansonsten relativ zu Rechteck ausrechen.
mouseOffset.y = e.y; // Wenn relativ zu Rechteck, ansonsten relativ zu Rechteck ausrechen.

// MouseMove
rechteck.x = mouse.x - mouseOffset.x;
rechteck.y = mouse.y - mouseOffset.y;

// MouseUp
mouseOffset = null;
 
Du musst beim MouseDown den Offset innerhalb des Rechtecks speichern, und dann das Rechteck immer auf die Position minus diesen Offset setzen. Etwas Pseudo-Code:

Java:
Point mouseOffset = null;

// MouseDown
mouseOffset.x = e.x; // Wenn relativ zu Rechteck, ansonsten relativ zu Rechteck ausrechen.
mouseOffset.y = e.y; // Wenn relativ zu Rechteck, ansonsten relativ zu Rechteck ausrechen.

// MouseMove
rechteck.x = mouse.x - mouseOffset.x;
rechteck.y = mouse.y - mouseOffset.y;

// MouseUp
mouseOffset = null;
Naja aber das mache ich doch im Prinzip. (Im letzten Bild zu sehen)
Ich sette die Position direkt auf die Mausposition minus den Offset.
 

Zurück
Oben