?他們分別是: 總管理類,? 總更新和渲染
?其中的一些細節是:
?管理類部分,
??? 舉一個例子,對于不同類型的磚塊來說,他們屬于一個磚塊 基類,并由這個磚塊 基類派生,創建自己的屬性,然后再向磚塊管理器注冊,每增加一種類型的磚塊就向管理者注冊,當管理器創建此種類型的磚塊時,實際就是調用這些子類的接口并創建它們。
?? 這樣,我們就隱約看見了一個公司的運作,他們有總管理者,部門管理者和員工,管理者們是核心, 員工是擴展部分,具體包括各種磚塊。
?
? 資源管理部分,
? ? 很多朋友愿意把資源一次性載入,好處是,節省運行時間,方便管理等。壞處是程序初始運行時間長,內存消耗太大,很顯然,你不可能同時使用所有資源,一些不用的資源,也駐留在內存里,等待調用,對于系統的有效性來講,實在有些不劃算。
?? 實時載入資源好處是內存使用很有效,但是頻繁讀寫硬盤,程序運行時間延遲突出,使程序運行有時很不連貫。因此我們要具體情況具體分析,要給資源分級,哪些一次性載入,哪些是實時讀寫。
??
? 碰撞檢測部分,
? 目前使用廣泛的是使用矩形框來進行粗略的碰撞檢測。
? 幾種主要的碰撞:
??? 小球與平臺, 按照角度,速度,加速度定出軌跡運動
??? 小球與磚塊, 刪除磚塊(重要的是從內存中刪除),
??? 小球與寶物, 更改小球的相關屬性, 刪除寶物(重要的是從內存中刪除)。
??? 小球與墻壁,
按照角度,速度,加速度定出軌跡運動
??? 磚塊與磚塊, 一些會 按照角度,速度,加速度定出軌跡運動, 一些不予理會
??
? 碰撞管理只用一個管理器完成,只是要提供不同的接口和容器。 ? 、
? 檢 測小球與磚塊,或寶物發生碰撞時,可能是一對多,也可能是多對多。這個可以在小球管理器內放置一個指針,用來指示當前正在判斷的磚塊。進行檢測時,就把這個指針指向的磚塊傳遞給磚塊管理器進行檢測。然后改變這個指針。直到指針回到容器頭部。
? 屬性資源的管理
?? 當然全部由外部資源屬性文件讀取,包括,小球,磚塊,寶物,背景等等各個方面的屬性。完全靜態讀取,好處是當物品被創建時,讀入屬性值,如果已經初始化,就使用屬性值。
?? 目前總體框架,先想到這里。 大體是這樣了,具體的還有很多,畢竟管理的資源多,邏輯也相對復雜。
?????