• 12
• 27
• 9
• 9
• 20

# issue with image placement in respect of another image

This topic is 2129 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I am using XNA 4.0 and c#

how can I get an image to set its position according to the end of another image?

this is what I have so far

 rocketPosition = players.Position; rocketPosition.X += players.Position.X +40; rocketPosition.Y -= players.Position.Y -370 ; rocketAngle = players.Angle; Vector2 up = new Vector2(0, -1); Matrix rotMatrix = Matrix.CreateRotationZ(rocketAngle); rocketDirection = Vector2.Transform(up, rotMatrix); rocketDirection *= players.Power / 50.0f; 

the rocket goes in the right direction but its starting position is wrong if I move the cannon

the code that moves the cannon
 if (keybState.IsKeyDown(Keys.Left)) { if(players.Angle > MathHelper.PiOver4-.3) players.Angle -= 0.01f; } if (keybState.IsKeyDown(Keys.Right)) { if (players.Angle < MathHelper.PiOver2) players.Angle += 0.01f; } 

##### Share on other sites
I accomplished this using something like this:

 public Vector2 WeaponFireLoc { get { return Location + (WeaponDir * <X Offset at neutral angle, I used 5 but have small sprites>); } } public Vector2 WeaponDir { get { Vector2 v = new Vector2(-1, 0); v = Vector2.Transform(v, Matrix.CreateRotationZ(WeaponAngle)); if (v != Vector2.Zero) { v.Normalize(); } return v; } } 

The WeaponDir gets a normalized V2 (-1 -> 1) that points in the direction the weapon is aiming.
WeaponFireLoc returns a V2 that is N pixels down that direction from Location, where N is <X Offset at neutral angle, I used 5 but have small sprites>.

Hope that helps. I suspect it's not the only solution, and perhaps not the best, but it's worked for me.