2013-03-30 21 views
0

我在Android上使用MonoGame在MonoGame上開發的處理後退按鈕的問題。我無法追回按鈕點擊事件。在Android上的MonoGame中處理後退按鈕

我想:

if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) 
{ 
    LoadingScreen.Load(ScreenManager, true, null, new BackgroundScreen(), 
           new LevelSelectScreen()); 
} 

而且在主要活動

public override bool OnKeyUp(Keycode keyCode, KeyEvent e) 
    { 
     if (keyCode == Keycode.Back) 
     { 
      ... 
      return true; 
     } 

     return base.OnKeyDown(keyCode, e); 
    } 

    public override void OnBackPressed() 
    { 
     ... 
     Toast.MakeText(this, keyCode + " key! + " + keyCode.ToString(), ToastLength.Short).Show(); 
    } 

    public override bool OnKeyDown(Keycode keyCode, KeyEvent e) 
    { 
     if (keyCode == Keycode.Back) 
     { 
      ... 
      return true; 
     } 

     return base.OnKeyDown(keyCode, e); 
    } 

沒有什麼幫助,WP上的第一個變體的作品完美

+0

最新問題 –

+0

我無法回收按鈕點擊事件。 – SerCe

+0

據我所知GamePad.GetState(PlayerIndex.One).Buttons.Back是這樣做的方式,所以也許還有其他的錯誤? – craftworkgames

回答

0

YEAH! 我找到了解決辦法: 當您在Android的調用

GamePad.GetState(PlayerIndex.One) 

GamePadState清除

public static GamePadState GetState(PlayerIndex playerIndex) 
{ 
    var instance = GamePad.Instance; 
    var state = new GamePadState(new GamePadThumbSticks(), new GamePadTriggers(), new GamePadButtons((Buttons)instance._buttons), new GamePadDPad()); 
    instance.Reset(); // <- CLEAR BUTTONS 
    return state; 
} 

所以,不叫GETSTATE在Android的好幾倍。