[英]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方法中捕獲用戶輸入一樣。
我可以推薦兩種相對簡單的路線:
在XNA中做一切。 這意味着您必須使用XNA技術完成所有UI(例如庫存窗口)。 這個選項會給你最好的設計,因為,說實話,WinForms可能有點難看,特別是當他們被迫進入看起來不像WinForm的東西時
在WinForms中做一切。 基本上你的游戲必須在WinForm中,這樣你的所有WinForms都可以通過正常方式輕松進行通信。 好消息是你可以在WinForm中嵌入一個XNA屏幕。 基本上任何XNA級別的編輯器教程都會向您展示如何執行此操作,但這里有一個關於codeplex的 示例以及Microsoft的示例集合中的一些示例代碼 。 從這個你應該能夠讓一切都在談論。 由於性能原因和美觀,這種方法不太理想,但如果您的游戲足夠簡單,它應該是有用的。
我強烈推薦上面的選項一,但如果一切都失敗,選項二確實有效。
如果你省去麻煩並在XNA中繪制所有東西會更好。 基本上有兩個類,一個包含所有項目,另一個包含庫存。 您還應該有一個List來更輕松地管理事物。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.