2009-10-13 52 views
0

我已經開始在Objective-C的Mac OS X上進行編程,並決定創建一個小型紙牌遊戲。起初,我創建了一個命令行版本。如果一切正常,我想實現一個GUI:沒什麼大的,只是一個可以拖放卡片的綠色窗口。Mac OS X:實現紙牌遊戲GUI的最佳方式

因爲我不知道如何做到這一點:我可以用什麼來實現我的紙牌遊戲GUI?

由於Objective-C和Cocoa在Mac OS X上看起來像一個「捆綁」,是否有可能使用Cocoa來實現這個(以及如何)?如果不是,我還應該使用什麼或已經存在。喜歡這個?

問候,

INNO

+0

帶卡的綠色窗戶?聽起來像freecell – pxl

回答

6

蘋果有一些示例代碼here,可能你指出正確的方向。

+0

我可以從一些截圖和文件名看到這似乎是我正在尋找。謝謝! :) – Inno

4

這是一個很好的研究MVC。

  • 你的模型(一個活躍的遊戲,玩家和非玩家角色,遊戲中的卡片等)將完全在Foundation中,至少在一開始。您可以稍後添加AppKit相關的屬性(如圖像),並使用C預處理器來對該代碼進行條件化,以便繼續維護命令行程序。
  • 你的控制器也將通常在純基金會。我說「控制器」是因爲你將擁有一個適用於這兩種程序(擁有模型,響應用戶操作,運行遊戲 - 即交易卡,執行規則等)的程序,一個專門用於命令行程序(保存readline /輸出循環),並且至少有一個專用於GUI程序(擁有遊戲窗口)。
  • 在GUI應用程序中,當然,您將使用AppKit編寫視圖。在命令行應用程序中,您可能希望創建一個獨立於控制器的View類,以便從根本上快速更改輸出(即使在運行時,如果要允許的話)也很容易。當然,該視圖不會從NSView下降,並且將使用終端輸出而不是圖形繪製。

我建議在製作GUI版本後保持程序的命令行版本,至少稍等一會兒。當你可以毫不費力地維護兩個工作版本的程序時,你會知道你做得對,甚至在一個版本的程序中發現一個錯誤並在兩個版本中修復它。

+0

是的,如果您的應用程序可以在命令行以及完整的GUI中運行,那麼我認爲這是乾淨設計的標誌。 :) – Inno