Xbox 컨트롤러 썸 스틱을 기준으로 스프라이트 (예 : 우주선)가 향하는 각도를 계산하기 위해 매우 기본적인 공식을 사용하고 있습니다. 즉, 썸 스틱을 사용하여 선박을 회전시킵니다.
내 주요 업데이트 방법에서 :
shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y);
내 주요 추첨 방법에서 :
spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1);
보시다시피 썸 스틱에서 현재 라디안을 가져 와서 플로트에 저장 shuttleAngle
한 다음 셔틀을 그리기위한 회전 각도 (라디안) 인수로 사용합니다.
어떤 이유로 스프린트를 돌리면 0, 90, 180 및 270도 각도에서 끈적 거리게 느껴집니다. 그것은 그 각도로 정착하고 싶습니다. 비슷한 메커니즘을 사용하는 게임에서 느끼는 것처럼 부드럽고 자연스럽게 회전하지 않습니다. PS : Xbox 컨트롤러가 정상입니다!
1
Atan2가 Y 값을 먼저 사용한 다음 X 값을 사용하지 않습니까? msdn.microsoft.com/en-us/library/system.math.atan2.aspx . x와 y 값을 먼저 바꿔야합니다. 보간법으로 값을 완화하는 것을 고려 했습니까? toValue-currentValue / 속도
—
Sidar
죄송하지만 newShuttleAngle-oldShuttleAngle / 속도를 의미했습니다.
—
Sidar
그것은 시각적 인 방향에만 영향을 미치며 텍스처의 이미지 방향이 전적으로 어떤지에 달려 있습니다. 그의 문제에 영향을 미친다는 것을 알 수 없습니다.
—
Joe Shanahan
이거 윈도우 야? 그렇다면 프로젝트가 콘솔 창 (프로젝트-> 프로젝트 옵션-> 응용 프로그램-> 출력 유형)을 사용하도록 설정하고 각도
—
Joe Shanahan
shuttleAngle
를 인쇄하여 해당 각도에 고정되는지 확인하십시오.
와우 훌륭한 직업 SomeWritesReserved와 다른 모든 사람, 나는이 사이트에 정말 감동합니다, 피드백은 너무 빠릅니다! 내 첫 번째 게시물이므로 누군가 도와 준 모든 사람들에게 크레딧을 제공하기 위해 어떻게해야하는지 알려주십시오.
—
Hugh