2010-06-22 137 views
0

我有一個關於iPhone遊戲模型視圖控制器(MVC)設計模式的問題。iphone MVC遊戲設計問題

比方說,我有一個簡單的遊戲,使用ViewController。所以這個視圖控制器有一個關聯的窗口/視圖,並在這個視圖上採用按鈕滑塊等的播放器輸入。

現在我也有ViewController的主窗口/視圖的子視圖,我實際上在這個子視圖中做了各種多邊形的動畫。我也想在這個子視圖中進行觸摸事件。

我的問題是,在子視圖中,我有所有的用戶觸摸代碼和動畫代碼,因爲玩家的觸摸輸入會影響動畫直接更改旋轉等。我的子視圖類中有很多變量。 我違反了MVC設計嗎?我應該將這些東西委託給另一個類或視圖控制器嗎?

非常感謝

回答

0

這取決於你想要完成什麼。

假設您希望您的遊戲在普通PC以及iPhone上運行。

很明顯,你想隔離所有的特定於iPhone的代碼,其中包括觸摸。我假設你會在兩個版本的遊戲中都需要動畫,所以這將成爲控制器或模型的一部分。渲染動畫將成爲視圖的一部分。

確定哪些功能屬於視圖以及哪些功能屬於控制器的最簡單方法是想象將應用程序移植到兩個不同的查看器。它不一定是個人電腦和iPhone。它可以是Android和iPhone。 :-)

+0

很酷謝謝。更具體地說,如果我的自定義子視圖有touchesBegan等回調,我如何使這些與我的控制器類通信? – songBong 2010-06-24 11:48:11

+0

想一下觸動什麼概念。我不知道您的特定應用程序,但是可以想到一些概念,如放大,縮小,以前的圖像和下一張圖像。你的觀點與觸摸有關。您的控制器處理適用於您的應用程序的概念。 – 2010-06-24 13:13:31