在開發過程中我們經常會遇到這樣一個問題:
一個遊戲在接近尾聲的時候突然來了一個需求,要在主遊戲過程中嵌入一個小遊戲,並且現有邏輯要使用這個小遊戲的遊戲結果。
這時候 我們應該怎麼辦?
最一般邏輯應該是,在需要觸發小遊戲的時候,嵌入整個小遊戲的代碼(或者是類或者是函數),然後在執行完遊戲後使用返回結果。這樣做容易造成代碼不容易維護。
於是我想那就把這個小遊戲單獨先做成一個swf放在備用,在主遊戲中預留一個用於嵌模塊的虛函數,然後要嵌套的時候直接加載這個flash這樣子不管我在後期要加多少模塊,工作都集中在這些模塊製作上。而主框架需要動的就是那個嵌模塊用的虛函數了。
但是這樣子又遇到一個問題,那就是怎麼使加載進來的swf和現有的主框架進行通信?這是一個問題,用鉤子函數就可以結果了,模塊提供一個接口用於接受鉤子函數,主框架裏提供鉤子函數用於和模塊通信的邏輯處理。一掛上什麼問題都沒有了。
那麼開發一個項目,就變成了模塊的戰鬥。思路變的很清晰。
主框架負責加載模塊和提供模塊的邏輯函數並決定模塊的位置。
模塊負責自身的表現,以及提供接口。