Win a copy of The Way of the Web Tester: A Beginner's Guide to Automating Tests this week in the Testing forum!

# angle of mouse

Evan Pierce
Ranch Hand
Posts: 36
im trying to get a sprite to fly towards the mouse when the left click is released. im having trouble figuring out how to get it to calculate the angle inwhich it needs to be moving in to fly towards mouse. anyone know how i could calculate this angle?

Ernest Friedman-Hill
author and iconoclast
Marshal
Posts: 24212
35
The x and y components of the motion of the sprite are just going to be proportional to the x and y coordinate differences -- i.e.,

delta_x = f(mouse_x - sprite_x)
delta_y = f(mouse_y - sprite_y)

Where delta_x/y are the amounts to add to the x and y coordinates of the sprite in each frame of animation, mouse_x/y are the mouse coordinates, sprite_x/y are the sprite's coordinates, and f() is some function that determines the speed of motion -- it might be "divide by 5, rounding up", for example.

The actual angle isn't as useful, but if you truly need it, it's

angle_in_radians = Math.atan((mouse_y - sprite_y)/(mouse_x - sprite_x))

you need to be careful of that potential divide-by-zero; if the denominator is 0, then the angle is either 0 or pi, depending on the sign of the numerator.

pascal betz
Ranch Hand
Posts: 547
Math.atan2(deltaY, deltaX) should do the trick. note that first argument is delta Y. it takes care of division by zero problems.