good程式設計:ID

在進入good的程式設計之前,有一些基本的觀念有必要先了解,否則在實作GamePlay時遇到了某些問題,可能會莫名其妙而且陷入一直找不到問題所在的困境。

這篇文章內容要介紹在good裡面非常重要的ID的概念。

所有東西都有ID

在前面編輯器的簡單介紹裡面可以發現到,所有資源不論是什麼樣的種類,在屬性檢視器裡面都可以看到有個ID屬性。除此之外,在關卡資源裡的所有物件也都擁有自己的ID。(ID是個數字)

每一個ID都是唯一

所有使用到的ID,無論是資源項目的ID或者是物件的ID,每一個都是獨一無二的。也就是說如果有個精靈資源的ID是12,那麼12這個ID就會只有一個,不會再有另一個資源或是物件的ID也是12。

ID可以重覆使用

good裡所使用的ID都是由編輯器或是RunTime維護及分配使用,當一個資源或物件被刪除時,這個資源或物件原來使用的ID就會被回收。而被回收的ID並不一定會被立即重覆使用,有可能在你作了幾次新增動作之後才發現到,新增的資源或物件被分配到一個被回收的ID。當然也有可能在你刪除了一個資源或物件之後,被回收的ID立刻就被重覆使用在下一個新增的資源或物件上。

以上這三點是對於good編輯器在ID上的使用需要了解的基本知識。

+++

那麼RunTime呢?

當你在編輯器工具列上點擊Play鈕時,good RunTime會載入第一個關卡資源,根據第一個關卡資源的內容,建立起所有的物件,這些物件包含貼圖物件、地圖物件和精靈物件等。good RunTime會根據在關卡編輯器裡所編輯的物件次序和類別以及其相關屬性,一個一個把這些物件建立起來。

其中最重要的是,當我們使用關卡編輯器作編輯時,關卡中的每一個物件都會自動分配到一個ID。而RunTime在建立這些物件時,同樣的也會分配一模一樣的ID給這些RunTime物件。

因為在執行過程中的ID使用原則一樣遵守上面所列的三項原則,所以動態刪除的物件的ID會被回收,而動態產生出來的新物件的ID也可能會是重覆使用舊ID。


留言

這個網誌中的熱門文章

以lex/yacc實作算式計算機

猜數字遊戲 (電腦猜人)

KillSudoku 4顆星精彩數獨詳解 - 鍊技巧