簡體   English   中英

不啟用時關閉鼠標交互

[英]Turn off mouse interactivity when not on applicaiton

可以說我正在運行C#程序,屏幕上有一個按鈕,如果將鼠標放在該按鈕上,它將把游戲切換到一個新頁面。 現在,我在項目前面放了另一個窗口,假設是Google Chrome,然后我正在網上搜索並單擊內容,因為我正在運行的項目仍在與鼠標交互,甚至可以按下按鈕。如果我看不到按鈕。 如何關閉此互動?

通過在Game類的實現中使用IsActive(默認情況下稱為Game1),可以避免在游戲未聚焦時接收輸入。

protected override void Update(GameTime gameTime)
{
    base.Update(gameTime);

    if (!IsActive)
    {
        return;
    }

    // ... do regualr update.
}

http://msdn.microsoft.com/zh-CN/library/microsoft.xna.framework.game.isactive.aspx


或者,如果您已經擁有某些游戲狀態管理系統,則可以覆蓋游戲中的OnDeactived方法。 當游戲失去焦點時,將調用此函數。

protected override void OnDeactivated(object sender, EventArgs args)
{
    base.OnDeactivated(sender, args);

    // If we are in a state which it makes sense to pause the game, then do it now.
    if (GameObjectManager.pInstance.pCurUpdatePass == BehaviourDefinition.Passes.GAME_PLAY)
    {
        GameObjectManager.pInstance.pCurUpdatePass = BehaviourDefinition.Passes.GAME_PLAY_PAUSED;
    }
}

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.ondeactivated.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM