旧GamePadState xbox控制器
本文关键字:控制器 xbox GamePadState | 更新日期: 2023-09-27 18:16:24
所以我试着用手柄做一些非常简单的事情,我以前用键盘做过。这是为了创建一个旧状态来记录上次更新时按下的按钮。
所以当使用键盘时,我有一个代码看起来像这样:
oldKeyboard = currentKeyboard;
这是放在我的更新的末尾,这意味着在下一次更新时,我可以有这样的if语句
if (currentKeyboard.IsKeyDown(Keys.A) &&(oldKeyboard.IsKeyUp(Keys.A))
{
guy.drawRect.X ++;
}
我现在遇到的问题是,我在代码中使用Xbox手柄,我只是不知道正确的代码是什么。目前这是我所拥有的,它不起作用:P。如有任何帮助,我将不胜感激。
void ShipUpdate(GamePadState Curr, GamePadState Old)
{
Curr = GamePad.GetState(PlayerIndex.One);
if (Old.ThumbSticks.Left.X > 0.0f && (Curr.ThumbSticks.Left.X == 0.0f))
{
move = MoveState.Still;
guy.srcRect.X = 0;
}
Old = Curr;
}
我已经去掉了这里所有不必要的代码所以这里是J.E.E.P
您实际上没有更新您的旧状态。因为你将这些作为参数传递并且GamePadState实际上是一个结构,
Old = Curr;
只更新'old'变量的本地副本。通过引用传递它们,如
void ShipUpdate(ref GamePadState Curr, ref GamePadState Old)