2012-06-06 41 views
2

标题只是说明了一切。我从XNA Game类派生,并设置IsMouseVisible = true。我有一个双屏幕设置,辅助显示屏从主屏幕扩展。我将我的游戏设置为全屏模式(GraphicsDeviceManager.IsFullScreen = true)。所有工作正常和全屏模式被初始化。我遇到的唯一问题是鼠标不能在全屏游戏中保持绑定状态。只要它到达全屏游戏的边缘,它就会无缝移动到辅助监视器上。这是预期的吗?C#XNA 4.0全屏鼠标移入第二台显示器

我做一个Mouse.GetState()检索鼠标信息的每一帧在我的游戏运行相同的线程。

我甚至在每次调用GetState之前都尝试设置Mouse.WindowHandle = GameWindowHandle,但它不会改变任何东西。

任何想法?或者是这种预期的行为,我需要将鼠标夹到全屏幕区域?

问候, 里安

回答

3

是的,没错,夹紧你的鼠标,你希望它留在屏幕上。这与我(和许多其他人)在为我的游戏实现精灵游标时使用的方法类似。我隐藏了系统鼠标,并将其夹在屏幕的中央,以便它不会显示在其他显示器上。

唯一的缺点是,如果你最小化游戏等,你必须解开你的鼠标。否则它会一直卡住,这真的很烦人。

+0

A.R.谢谢你的回复,所以这意味着我不能使用我的鼠标的系统图标? Atm我只是加载ico文件(其中一些是动画的),它由系统光标自动显示,方便!我仍然可以这样做,还是必须将其放入图像中,并使用spritebatch将其显示在隐藏的鼠标位置...... –

+0

不,您可以使用系统图标,但前提是系统鼠标可见。然而,如果你想要做非系统的东西,比如调整alpha,使用一个大的位图等,你可能会需要自己的精灵。在这种情况下,系统光标会被隐藏起来,而你的是被使用的。 –