If you do it as an actor behavior, there's a lot less headache. Here's the idea I'd use, which uses just three attributes. "Dragging?" is a boolean to see if the mouse was pressed on the actor. "OldX" and "OldY" get the comparison location of the mouse vs. the actor at the start (so if you click in the upper-left corner of the actor, that's where you'll drag it from, etc.). If you don't like that part, you can just always subtract the x-center and y-center of the actor instead so that the mouse is over the middle of the actor (simplifies the code a lot as you can take out all of the OldX/OldY codes). Then, if the mouse was released, reset the "Dragging?" (so that it no longer moves with the mouse).