0
我有一個奇怪的問題,這是最明顯的,由於我作爲一個XNA遊戲程序員的新地位,但在這裏不用。我有一個KeyboardManager類我做,很簡單:鍵盤狀態比較失敗
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
namespace CrazyCoders.XYZ.Framework
{
public class Keyboard
{
public KeyboardState previousState = Microsoft.Xna.Framework.Input.Keyboard.GetState();
public KeyboardState newState;
public void begin()
{
//Get the new state
KeyboardState newState = Microsoft.Xna.Framework.Input.Keyboard.GetState();
}
public Keys[] detectKeyDowns()
{
return newState.GetPressedKeys().Except(previousState.GetPressedKeys()).ToArray();
}
public Keys[] detectKeyUps()
{
return previousState.GetPressedKeys().Except(newState.GetPressedKeys()).ToArray();
}
public void end()
{
//Save the new state for the next pass
previousState = newState;
}
}
}
該類保存先前的鍵盤狀態,並採取新的,當你調用開始()。然後,使用newState和previousState的detectKeyDowns和detectKeyUps計算陣列例外返回什麼真正最後按下或取消按下。
問題是,事情是不工作...
我想我自己的newState後添加
右取指在開始和它打破,它工作得很好,我看到例如,我的「我」鍵被按下。但是,當我調用detectKeyDowns時,我可以似乎除了正確。
難道你們看不到我做錯了嗎?