遊戲設計-Python
Python是一種十分強大的語言,面向對象,跨平台,快速,直譯語言,腳本語言(scripting language),通用語言,膠水語言,全部都可以安在Python身上。Python最大特色是其简捷而清晰的语法特点,筆者曾經接觸過Pascal,C,Java,Ruby,無疑Python是當中最簡單明快的一種語言。只要你曾經接觸過任何電腦語言,你都會覺得Python易學易上手。
時下在Facebook流行的遊戲差不多都是用Flash寫成的,而大部分Web Game也不可以單由Python完成。在這樣的大環境之下,只學習Python顯然無法躋身於以上的平台遊戲,但學習仍可以了解遊戲設計的過程以及難點。我相信對於將來有心在遊戲界發展的朋友應該會有所啟發。上文提及過RPG Maker,其實Maker就是一個引擎,而我們的最終目標就是製作一個遊戲引擎。
我們首先由Python的一些簡單語發法開始吧!
打開Python Shell, 即是上文中提及過的IDLE(Python GUI)。
Shell的功能有兩個,一個是可以運行腳本(Script),另一個就跟Linux下的Shell一樣,可以執行語句和表達式,第二個功能對測試比較重要。嘗試輸入以下內容:
>>> 1 + 12 >>> print 'hello world'
hello world >>> x = 1
>>> y = 2 >>> x + y 3
一行語法就可以完成其他高級語言若干行的Hello World啦!接下來正式進入程式時間,先創建Python文件,Python Shell->File->New Window,或者直接創建一個.py的文字檔。
def buildConnectionString(params): """Build a connection string from a dictionary of parameters. Returns string.""" return ";".join(["%s=%s" % (k, v) for k, v in params.items()]) if __name__ == "__main__": myParams = {"server":"mpilgrim", \ "database":"master", \ "uid":"sa", \ "pwd":"secret" \ } print buildConnectionString(myParams)
其中def :是定義funtion的語法,基本樣子跟C,JAVA都差不多,但切記要注要define function name之後要接冒號":"。細心的讀者可能已經發現上無論是上面的x,y還是這裡的function,他們在declare(宣告)的時候都沒有指定是那一種類型(Type)。事實上Python是動態類型語言,無須指定變量類別,而在第一次使用時則會自動確定。另外一是Python的強類型(Strong Type)語言,除非明確地轉換,否則變量只會維持在原本的內容,即是在C語言中常見的"a"+32將會造成錯誤。
def下面的六個引號是一個大的String,用來對function的說明,並且可以通過FUNCTION_NAME.__doc__來取回該段說明。
上面return中出現了奇怪的 ";".join ,留意在Python之中,一切東西都是對象(Object),對象可以視為具有屬性(Attribute)和方法(Methods)。";"為一String,而Pyhon中的String具有join的方法,大家可以嘗試打
": ".join(["firear.net","the best"])
可見join可以使到兩個String連結並以呼叫join的String作為連結。再來探討一下join當中的括號[],中括號代表List,可以視為其他Program中的Array(陣列),輸入
["%s=%s" % ( 'a','b')]
輸出結果為一個只有一格的Array,但重點是'a','b'以設定的模式連結,另外要注意小括號將里面的內容視為一個整體,稱為Tuples,類似的Structure(結構)將會重覆出現。最後就只剩下for-loop要解釋啦! 這裡執行了List Comprehension,即是在List中經過一系列操作而取得Sub-list。Python中的for是十方強大而且簡單的,舉個例子
for i in range(10):
print i
用 for VAR in Sequence的結構就可以將Sequence中的items全部數出,而原function中的就將params(which is a list)中的items(which are objects)儲存在(k,v)中,然後(k,v)以指定方式"="連結再由";"將全部items組合(join)。
回到我們的第一個Python Program,選RUN->Run Module,以下為執行程序的結果:
稍為提及一下程序中的大括號{}是Python中的一種類型,dictionary。
相信大家對List,Dictionary,Tuples,String,Function都有一個初步的認識,更多的語法可以參考以下文件:
注意,本文部分例子來自<<Dive Into Python>>
遊戲設計-序: http://firear.net/blog/2009/11/26/game-design/










November 28th, 2009 - 12:30
嗯,好詳細
November 28th, 2009 - 17:01
好像很不詳細的樣子..所以我將來不會考慮做老師.
November 29th, 2009 - 09:04
I have already seen it somethere…
Nicolas
November 29th, 2009 - 09:59
Do you mean they share the same examples? or the whole content?
January 9th, 2010 - 00:30
这篇入门文章写得真好,瞬间让我学习到了python的语法与魅力。
特此评论,以资主人继续后文
January 9th, 2010 - 22:24
有你的支持,我會繼續談談PYTHON!!