针对拇指杆XNA

时间:2013-01-10 21:53:31

标签: c# xna angle xbox360

目前在XNA编程方面有一些乐趣,是XBox控制器的顶级射击游戏,但我现在遇到了一些问题。

所以我用左手拇指杆移动我的角色并用我的右手瞄准,所以基本上我可以向任何方向移动并仍然以360度角度射击。我现在所做的工作,但它非常敏感和“俗气”,如果我在一个完美的外圈移动拇指操纵杆,它喜欢在所有90个角度上加一点额外,然后移动到下一个角度。 / p>

所以这就是我现在所拥有的:

direction.X = gpState_new.ThumbSticks.Right.X;
direction.Y = gpState_new.ThumbSticks.Right.Y;
rotation = Math.Atan2(direction.Y, direction.X);

然后当我绘制播放器时,我使用旋转作为我绘制它的角度。 你有任何关于如何做得更好的提示吗?

Fredrik

1 个答案:

答案 0 :(得分:1)

看起来这是因为棒上的“死区”。基本修复可能是使用GamePadDeadZone.Circular。也许在您的代码之前,类似

GamePadState gpSTate_new = GamePad.GetState(playerIndex, GamePadDeadZone.Circular);

GameDev上有一个非常相似的question(你可以在那里看到更详细的答案),将来你可能会对这类问题有更好的运气。