我正试图以45度角射击子弹。 然而,它一直在拍摄。
float armCos = (float)Math.Cos(0.0f - MathHelper.PiOver2);
float armSin = (float)Math.Sin(0.0f - MathHelper.PiOver2);
bullet.position = new Vector2(
arm.position.X + 42 * armCos,
arm.position.Y + 42 * armSin);
答案 0 :(得分:1)
您可以使用此函数返回向量。使用在您的init bullet函数上并存储到某个变量中并使用它来更新您的项目符号位置。
public static Vector2 Vector2FromAngle(double angle, bool normalize = true)
{
Vector2 vector = new Vector2((float)Math.Cos(angle), (float)Math.Sin(angle));
if (vector != Vector2.Zero && normalize)
vector.Normalize();
return vector;
}