2013-11-04 2 views
1

45도 각도로 총알을 쏘려고합니다. 그러나 똑바로 계속 촬영합니다.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); 
+7

'PiOver2'는 90 도가 아닌 45도입니다. 전체 pi는 180도입니다. – Guffa

답변

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; 
}