1
votes

I'm busy with a little topdown shooter in XNA. Now I have a little Mathematical problem: I have a sprite, a human that's holding a 9mm. Now the sprite looks at the mouse cursor. When I shoot, I want to show a little muzzle flash @ the end of the gun barrel. However, the coordinates of the end of the barrel will change when you rotate the character.

How can I get the correct coordinates in a sprite that is the end of the barrel when for example the end of the barrel is 14px above a players head?(topdown) enter image description here

So basicly I need to know how to get coordinates of a certain point in a circle that has an certain angle with the orgin.

Thanks!

1

1 Answers

4
votes
x=orig.x+cos(alpha)*r;
y=orig.y+sin(alpha)*r;

Where alpha is the angle between the x axis and the line extending the barrel; r is the radius of the circle (the lenght of the barrel).

One or both of the +s might have to be replaced with '-', depending on the orientation of the coordinate system (or play around with adding multiples of 90 degrees (up to 270) to alpha until you get it right).