簡體   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