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