Wednesday, May 31, 2006

簡單的Scene Management ?

今天是端午節,今年的端午好像有點不同,可能是天氣比較清涼,溫度只是23~25度。往年都是頗為熱的,看到扒龍舟的人們都會下水解熱,今年可能會少了這種情景了。

以前我曾經說過,一些日文的遊戲製作網頁,有一個有趣的程式技巧,叫做「Task System」(以Array型式儲存資料)。但回想一會,那個Task System如果是用Linked-list表達的話,其實是可以改做成為一個Scene Management程式。為何會這樣想呢?因為這種Task System,是以Priority為基礎,每一個Task除了會有Function Pointer作update外,還會有個priority值,這個priority值是記著一個數值,由 0 至 9 ( High ~ Low ),程式在每個Task的update時,會依據priority值,決定是否先update。

但我卻想,這個priority值,其實可以設定成為Scene management的level值,即是0至9不是High ~ Low,而是 Top ~ Bottom。每個Task都按level值update,level-0的先update(如此類推),當中每個Task在做update時,level值是底的,要和自己高一層的previous link做運算。就這樣,一個簡單的Scene Manager便出來了,這個設計只有一個好處,就是用 C 也可以簡單編寫到。

No comments: