This tutorial hasn't been translated.
This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.
Tracking to the cursor directly can be a great way to control sprites and maintains the precise movement of the mouse itself. But sometimes the movement of the mouse can be too quick and too sensitive, or simply too easy to use.
So instead of matching the position of the sprite directly to the mouse we will try to make it move towards where the mouse is positioned.
This can be done using these events:
This says that every tick the sprite will set its angle towards the position of the mouse X and Y coordinates and move forward at a speed of 2 pixels.
Hit the Run Layout button and test it out.
If you've noticed it moves very differently from the direct mapping. It moves at a constant pace almost like its crawling towards the mouse.
To change things up a bit we can use a different way of changing the angle. The Set Angle action makes the angle change instantly. Instead, we can make it change gradually by using the Rotate Towards Position action.
Now what it is doing is rotating at a rate of 3 degrees every tick towards where the mouse is positioned.
If you test it out you will notice it moves differently. It moves in a circular motion rather than just straight lines as before. This is because the angle doesn't aim towards the mouse instantly, but gradually turns to face it while still moving forward at 2 pixels every tick.
Follow the leader
This type of movement can be used to lead a sprite through a certain course like a maze.
Alternate player control
Moving directly to the mouse can be too easy. Make it more challenging by changing the way the sprite moves and how fast it moves.
This tutorial showed only made the sprite move forward. By adding custom movement things like acceleration can be added to make more of a gravity effect. When I tried it a type of orbital effect was created with the sprite swinging around the mouse.
Most of the time, adding physics can make things more complicated since the behaviour is more difficult to predict.
for me when I write Mouse.X and Mouse.Y, it says, "Mouse is not an object", so what do I do?
add object type: Mouse