2011-12-20 24 views
0

我正在做一個遊戲。這次試圖通過 屏幕實現菜單( - >教程) - >遊戲 - >記分板 - >遊戲。我應該使用狀態來實現應用程序的菜單和屏幕嗎?

這些屏幕本身在結構上有很大不同。所以我不確定州是否是100%正確的方法(因爲我瞭解各州對類似的佈局很好)。另一方面,他們中的很多人都有返回按鈕返回到先前的狀態,例如,在教程中,我將開始遊戲並回到菜單按鈕等。

我想知道是否有像這樣的問題的明確解決方案?也許有專門的圖書館來處理這種情況?

回答

0

State machines(不僅用於視覺狀態)是一個很好的解決方案來實現封裝組件的行爲,比如按鈕或 - 在你的情況下 - 菜單項,甚至可能是你的一些遊戲邏輯。他們可以獨立描述每個組件,並且它們有助於保持您的交互組織,從而防止錯誤。但是,當您查看整個應用程序時,狀態機難以維護:交互通常是多維的(即,不僅涉及一個組件,而且涉及許多層次並且處於層次結構的不同級別),當所有不同的參與者都被考慮在內時,最終的狀態機將很快變得非常複雜。

根據我的經驗,最好將事件驅動方法與模型 - 視圖 - 控制器體系結構結合起來用於您的應用程序邏輯,並在組件級別使用狀態機。我建議查看一些現有的Model-View-Controller框架,其中最值得注意的是RobotLegs,PureMVCParsley(儘管對我來說,Parsley看起來不像其他兩個完整)。

相關問題