本文將會比較簡短。如果你對於前面幾篇介紹cocos2d里面如何實現mvc有什么不清楚的地方,請跟我講,這樣我就可以補充地更詳細一點。我(原作者)最近接了一些非常大的外包項目,所以,用來寫博客的時間不是很多。在此,我簡單地總結一下前面寫的這些文章:
- 我們實現了Model,它可以幫助我們封裝游戲的邏輯,這樣可以使我們的關注點集中於游戲邏輯,而不是其它的(比如渲染)
- 我們實現了Controller來處理用戶交互,同時相應地更新model。
- 我們實現了View,而它的職責僅僅是負責顯示model的狀態。
它們三者之間的交互關系如下:
- Controller負責初始化Model和View
- View負責顯示Model
- View負責接收用戶touch事件,然后傳遞給controller來處理。
- Controller實現view的代理,同時可以操作Model。
- model則執行一些游戲邏輯處理並通知view它的狀態改變。
- View根據model的當前狀態來更新它里面的所有對象,比如精靈。
留幾個開放性的問題:
- 如果你想使用NSUodoManager來實現“撤銷”功能,你會把該功能放在哪里呢?Model?Controller?View?
- 你會怎么保存當前場景的狀態信息呢?
- 或者你還可以補充其它問題?
后記:本文已同步更新到cocos2d mvc這個系列里面去了。
如果你覺得本文章對你有所幫助,請您點一下旁邊的“推薦”按鈕,這樣可以讓更多的人看到,同時也會給我寫作的動力,謝謝大家。