issue with image placement in respect of another image

Started by
0 comments, last by FalconDragoon 11 years, 11 months ago
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;
}
Advertisement
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. smile.png

My Games -- My Music 

Come join us for some friendly game dev discussions over in XNA Chat!

This topic is closed to new replies.

Advertisement