【发布时间】:2013-06-02 18:42:32
【问题描述】:
所以我尝试使用以前使用键盘完成的游戏手柄来做一些非常简单的事情。那就是创建一个旧状态来记录上次更新时按下了什么按钮。
所以当我使用键盘时,我的代码看起来像这样:
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
【问题讨论】:
-
我自己设法解决了这个问题。关键在以下行中 void ShipUpdate(GamePadState Curr, GamePadState Old) 一旦我从这些行中删除了游戏手柄状态,一切正常。这是更正后的行。无效 ShipUpdate()