作為我的第一篇文章,先來談談galgame引擎的由來。
何謂galgame引擎? 那我們先從以製作galgame的角度說起。
最原始的想法就是直接使用任何一種支援GUI的程式語言,直接以程式碼寫出遊戲的流程以及各項功能。這項工作並不難,其實galgame程序的複雜度,在所有遊戲當中算是相當低的。
不過我們可以很容易地發現,在編寫galgame的過程中,我們一直都在做重複的事,簡單的說,其實只有三種: 載入圖片、撥放音樂、顯示文字、以及流程控制,那我們何不將這些功能包裝起來,以簡化程序的工作? 因此就有了galgame引擎的出現。
galgame引擎就是預先將各種常用的功能寫好,之後再由腳本(script)來呼叫這些功能。
這裡以顯示圖片為例,比較程式語言與galgame引擎腳本的差異:
程式語言(Win32環境下C語言):
galgame引擎腳本(krkr2):
SetDIBitsToDevice函式的功能是將記憶體中的一張bitmap顯示到螢幕上,其中可以設定許多關於顯示的參數。
krkr2的image標籤的功能一樣是將一張圖片顯示到螢幕指定的圖層上,關於圖層的概念稍後會再提到。
從這裡可以看的出來,雖然使用程式語言可以讓我們對畫面進行詳細的調整,但是其實在同一個專案下,我們大多用的都是一樣的設定,若使用galgame引擎腳本,就可以省下大量重複的工作了。
何謂galgame引擎? 那我們先從以製作galgame的角度說起。
最原始的想法就是直接使用任何一種支援GUI的程式語言,直接以程式碼寫出遊戲的流程以及各項功能。這項工作並不難,其實galgame程序的複雜度,在所有遊戲當中算是相當低的。
不過我們可以很容易地發現,在編寫galgame的過程中,我們一直都在做重複的事,簡單的說,其實只有三種: 載入圖片、撥放音樂、顯示文字、以及流程控制,那我們何不將這些功能包裝起來,以簡化程序的工作? 因此就有了galgame引擎的出現。
galgame引擎就是預先將各種常用的功能寫好,之後再由腳本(script)來呼叫這些功能。
這裡以顯示圖片為例,比較程式語言與galgame引擎腳本的差異:
程式語言(Win32環境下C語言):
int SetDIBitsToDevice(HDC hdc, int XDest, int YDest, DWORD dwWidth,
DWORD dwHeight, int XSrc, int YSrc, UINT uStartScan, UINT cScanLines,
const VOID *lpvBits, const BITMAPINFO *lpbmi, UINT fuColorUse);
galgame引擎腳本(krkr2):
[image storage="bg1" page=fore layer=base]
SetDIBitsToDevice函式的功能是將記憶體中的一張bitmap顯示到螢幕上,其中可以設定許多關於顯示的參數。
krkr2的image標籤的功能一樣是將一張圖片顯示到螢幕指定的圖層上,關於圖層的概念稍後會再提到。
從這裡可以看的出來,雖然使用程式語言可以讓我們對畫面進行詳細的調整,但是其實在同一個專案下,我們大多用的都是一樣的設定,若使用galgame引擎腳本,就可以省下大量重複的工作了。
留言
張貼留言