繁体   English   中英

运行XNA游戏时运行Windows窗体

[英]Run windows form while running an XNA game

我目前正在设计一款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方法中捕获用户输入一样。

我可以推荐两种相对简单的路线:

  1. 在XNA中做一切。 这意味着您必须使用XNA技术完成所有UI(例如库存窗口)。 这个选项会给你最好的设计,因为,说实话,WinForms可能有点难看,特别是当他们被迫进入看起来不像WinForm的东西时

  2. 在WinForms中做一切。 基本上你的游戏必须在WinForm中,这样你的所有WinForms都可以通过正常方式轻松进行通信。 好消息是你可以在WinForm中嵌入一个XNA屏幕。 基本上任何XNA级别的编辑器教程都会向您展示如何执行此操作,但这里有一个关于codeplex的 示例以及Microsoft的示例集合中的一些示例代码 从这个你应该能够让一切都在谈论。 由于性能原因和美观,这种方法不太理想,但如果您的游戏足够简单,它应该是有用的。

我强烈推荐上面的选项一,但如果一切都失败,选项二确实有效。

如果你省去麻烦并在XNA中绘制所有东西会更好。 基本上有两个类,一个包含所有项目,另一个包含库存。 您还应该有一个List来更轻松地管理事物。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM