Sure, the physics is a position based dynamics simulation, so you just need to move the points.
left is pressed
— p: set x to self.x-100/60
Just put that event towards the top of the event sheet. That would move it left at 100pixels per second at 60fps.
But we can probably do better. Instead of moving all the points we could move the top ones more than the bottom ones, which would let it roll.
Var ymin=0
Var ymax=0
For each p
— set ymin to loopindex?min(ymin,p.y):p.y
— set ymax to loopindex?max(ymax,p.y):p.y
Left is pressed
— p: set x to self.x-(self.y-ymax)/(ymin-ymax)*200/60
That should move the top points more than the bottom ones. Might need to change the 200 if it doesn’t move it enough to roll.
Thanks for the swift reply, as always. But unfortunately I can't get it working properly, I assume you mean to set the condition if left key is "held" not pressed, well I did that 'cause the press condition doesn't really move the object at all, and well the result is a lot of jank, as soon as I let go of the key, the object returns to its previous location, given that it of course moves at all
Would appreciate if you had the time to demonstrate a proper working solution, or a physics based simulation if possible. Appreciate your help.