运行XNA游戏时运行windows窗体
本文关键字:运行 窗体 windows 游戏 XNA | 更新日期: 2024-09-23 10:44:16
我目前正在设计一款RPG游戏,需要使用库存系统。理想情况下,用户按下一个键,打开角色的库存窗口。
示例:
protected override void Update(GameTime gameTime)
{
if ((GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
|| (Keyboard.GetState().IsKeyDown(Keys.Escape))) // to exit game, press Esc button
{ this.Exit(); }
if (Keyboard.GetState().IsKeyDown(Keys.E))
{
//insert window from lunch code here...
}
// TODO: Add your update logic here
base.Update(gameTime);
}
我正在使用窗口窗体设计库存屏幕。然而,我不知道如何将窗口窗体加载到Game1文件中。如有任何建议,不胜感激。
您需要在XNA项目中设计库存屏幕,就像任何其他视觉一样,通过创建精灵并在Update方法中捕获用户输入。
我可以推荐两种相对简单的方法:
-
在XNA中执行所有操作。这意味着所有的UI(比如库存窗口)都必须使用XNA技术来完成。这个选项会给你最好的设计,因为说实话,WinForms可能有点难看,尤其是当他们被迫使用看起来一点都不像WinForm 的东西时
-
在WinForms中执行所有操作。基本上,你的游戏必须在WinForm中,这样你所有的WinForm都可以通过它们的正常方式轻松交流。好消息是,您可以在WinForm中嵌入XNA屏幕。基本上,任何XNA级别的编辑器教程都会向您展示如何做到这一点,但这里有一个关于codeplex的示例和一些来自微软示例集的示例代码。从这一点上,你应该能够让一切都畅所欲言。由于性能和美观的原因,这种方法并不理想,但如果你的游戏足够简单,它应该是实用的。
我强烈推荐上面的选项一,但如果其他选项都失败了,选项二确实有效。
如果你省去麻烦,只在XNA中绘制所有内容,那会更好。基本上有两个类,一个类包含所有项目,另一个类用于库存。你还应该有一个列表来更容易地管理事情。