如何在 XNA 游戏中实现类似对话框的功能?我想要做的是当对话框的图像仍然处于活动状态时,它下面的任何内容都将停止接收用户输入,直到该框消失。使用矩形的 Contains() 方法似乎不起作用,因为它是基于坐标的。
例如:点击一个项目会弹出一个小的“使用”框。即使该框的图像与另一个项目的图像位于同一位置(或更准确地说,在顶部),单击该位置只会触发第一个项目的使用,而不会为第二个项目显示另一个“使用”框,有效地禁用碰撞矩形中第二项的输入区域。
如何在 XNA 游戏中实现类似对话框的功能?我想要做的是当对话框的图像仍然处于活动状态时,它下面的任何内容都将停止接收用户输入,直到该框消失。使用矩形的 Contains() 方法似乎不起作用,因为它是基于坐标的。
例如:点击一个项目会弹出一个小的“使用”框。即使该框的图像与另一个项目的图像位于同一位置(或更准确地说,在顶部),单击该位置只会触发第一个项目的使用,而不会为第二个项目显示另一个“使用”框,有效地禁用碰撞矩形中第二项的输入区域。
最简单的方法是使用 UIElementRenderer,如本例所示:http: //blogs.microsoft.co.il/blogs/pavely/archive/2011/10/26/windows-phone-combining-silverlight-amp-xna-in -a-single-page.aspx
只需使用一些标志来获取输入
例如,
bool accessFlag = true;
然后在 Update() 方法中
if (accessFlag)
{
// Take input from user
}
然后,当您的对话框或您想要的任何其他内容出现时,将 accessFlag 设置为 false。并在弹出窗口消失时使其成为现实。