• Post Reply Bookmark Topic Watch Topic
  • New Topic

angle of mouse  RSS feed

 
Evan Pierce
Ranch Hand
Posts: 36
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Sheriff
Posts: 24217
38
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Math.atan2(deltaY, deltaX) should do the trick. note that first argument is delta Y. it takes care of division by zero problems.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!