C# 不打开应用程序时关闭鼠标交互
假设我运行了我的C#程序,屏幕上有一个按钮,如果我把鼠标放在上面,它会将游戏切换到一个新页面。现在我在项目前面放了另一个窗口,比如谷歌浏览器,我正在搜索网页并点击东西,因为我现在正在运行的项目仍然与鼠标交互,即使我看不到按钮,也可以按下按钮。如何关闭此交互?通过在游戏类(默认情况下称为Game1)的实现中使用IsActive,可以避免在游戏未聚焦时接收输入C# 不打开应用程序时关闭鼠标交互,c#,xna,window,mouse,contains,C#,Xna,Window,Mouse,Contains,假设我运行了我的C#程序,屏幕上有一个按钮,如果我把鼠标放在上面,它会将游戏切换到一个新页面。现在我在项目前面放了另一个窗口,比如谷歌浏览器,我正在搜索网页并点击东西,因为我现在正在运行的项目仍然与鼠标交互,即使我看不到按钮,也可以按下按钮。如何关闭此交互?通过在游戏类(默认情况下称为Game1)的实现中使用IsActive,可以避免在游戏未聚焦时接收输入 protected override void Update(GameTime gameTime) { base.Update(ga
protected override void Update(GameTime gameTime)
{
base.Update(gameTime);
if (!IsActive)
{
return;
}
// ... do regualr update.
}
或者,如果您已经有一些游戏状态管理系统,您可以覆盖游戏中的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;
}
}
您的标题和问题很难阅读,也不清楚。如果你希望得到答案,你应该重新措辞,使其更易于理解。@PatrickQuirk我更新了这个问题,希望能帮助人们理解这个问题,这是一个很难命名的话题,很抱歉,没有沟通。可能是复制品?@cloyd800我想这是。我想知道Game.IsActive是如何被整合到程序中的。我尝试在主类的update方法中使用它,但出现了一个错误。IsActive没有出现。