游戲腳本的實現(6) 摘要: 本篇是游戲腳本的實現(5)的續篇。
事實上,創建可接受腳本的游戲引擎對于大多數的游戲而言,將產生出一個非常開放的源代碼以及高效率的項目。
游戲腳本的實現(5) 摘要: 本篇是游戲腳本的實現(4)的續篇。
add_script將行為列表框中選中的行為添加到腳本列表框中:
游戲腳本的實現(4) 摘要: 本篇是游戲腳本的實現(3)的續篇。
首先來看看WinMain函數以及主窗口處理過程的實現:
游戲腳本的實現(3) 摘要:
MLS系統僅使用到數字:代表行為的編號,隨后條目的數量,以及代表條目數據的編號。計算機特別擅長處理數字的工作,但我們的需要更多。需要將腳本構造成易于理解的文本行,并讓腳本編輯器將鍵入的文本轉變為腳本系統可以處理的一系列數字。
在編輯一個腳本期間,并不處理任何數字方面的問題,所以編輯器的工作還包括加載數字并將它們轉換回易于閱讀理解的文本行。因此,也可以這么說,僅需要使用一系列的文本命令構造一個腳本,然后使用腳本編輯器將這些命令轉換成代表它們數值,反之亦然。
游戲腳本的實現(2) 摘要: 因為ENREY_RULE結構僅包含了行為和條目的規則,所以需要另外的結構數組去存儲每個條目的數據。這些新的結構包括了在條目中所使用的文本、布爾值、多重選項,我們使用結構體ENTRY來表示。
在處理腳本條目的過程中,當一個腳本出現了許多條目時,最麻煩的問題也就接踵而來。腳本中的每個行為都要求一個相匹配的ENTRY_RULE結構,其依次包含了一定數量的ENTRY結構。為了更好地處理一個腳本的結構,還需要其他的結構來記錄屬于腳本行為的每個條目,我們將它命名為SCRPT。
游戲腳本的實現(1) 摘要:
創建一個角色扮演游戲項目時,會發現在源碼中編寫游戲相關信息十分困難(這樣做也是非常魯莽的)。最好的辦法就是使用外部數據源(類似于程序的代碼),稱之為游戲腳本(例如對話)。以這種方式,可以控制游戲的流程并節省寶貴的時間,因為不需要在每次做出改變后重新進行編譯。
當創建游戲時,游戲腳本與所編寫的程序代碼非常類似,只是游戲腳本相對于游戲引擎而言是外部的。正因為它們是外部的,所以才可以迅速地對腳本做出更改,而不用重新編譯整個游戲引擎。否則對于一個超過100萬行代碼的項目,僅僅為了改變一個對話行就要重新編譯整個項目。