游戲中如何進(jìn)行Python技術(shù)
如何使用Python技術(shù)在游戲中使用腳本主要有兩種方式,一種方式是主程序使用一門高級(jí)語(yǔ)言,比如C++進(jìn)行編寫,然后對(duì)其嵌入一個(gè)腳本解釋器,在運(yùn)行時(shí)動(dòng)態(tài)執(zhí)行一些腳本函數(shù)。
Python在很早的時(shí)候就是一種游戲編程的輔助工具。在《星球大戰(zhàn)》中扮演了重要的角色。在“阿貝斯(Abyss)”、“星球之旅(Star Trek)”、“Indiana Jones”超級(jí)大片中擔(dān)當(dāng)特技和動(dòng)畫制作的工業(yè)光魔公司(Industrial Light)就采用Python制作商業(yè)動(dòng)畫。目前,通過Python完全可以編寫出非常棒的游戲程序。
企業(yè)與政務(wù)應(yīng)用目前,Python已經(jīng)成功的實(shí)現(xiàn)企業(yè)級(jí)應(yīng)用,在全球,已經(jīng)有很多公司采用Python進(jìn)行企業(yè)級(jí)軟件的開發(fā)和應(yīng)用,比如:ERP和CRM這樣的應(yīng)用。同時(shí),通過Python技術(shù),成功的實(shí)現(xiàn)了許多政務(wù)應(yīng)用。用Python寫的較大的系統(tǒng)有:
Zope:一個(gè)應(yīng)用程序服務(wù)器,具有內(nèi)容管理、團(tuán)隊(duì)開發(fā)、XML、面向?qū)ο?、SOAP接口等一系先進(jìn)特性,且開放源碼。Gadfly:一個(gè)用Python寫的面向?qū)ο箨P(guān)系型數(shù)據(jù)庫(kù),具有小巧、快速、可移植性好,具有大部分SQL語(yǔ)言特性,且開放源碼。參還有一些比較有名的公司也在用Python進(jìn)行原型的開發(fā)。
如Microsoft、IBM等,還有:紅帽(Red Hat )曾用Python技術(shù)和Tk一起成功開發(fā)配置和管理操作系統(tǒng)的可視界面。整個(gè)系統(tǒng)可以全面控制Linux操作系統(tǒng),并根據(jù)用戶選擇對(duì)配置文件作自動(dòng)更新。
Infoseek在其公用搜索引擎使用了Python。該公司還用Python對(duì)其軟件進(jìn)行定制,使最終用戶能對(duì)該網(wǎng)站內(nèi)容進(jìn)行方便下載?!⊥ǔ?,程序員愛上Python是因?yàn)樗茉黾由a(chǎn)力。由于沒有編譯過程,編輯-測(cè)試-調(diào)試周期相當(dāng)快。調(diào)試Python程序很簡(jiǎn)單:一個(gè)錯(cuò)誤永遠(yuǎn)不會(huì)導(dǎo)致一個(gè)段錯(cuò)誤。
當(dāng)解釋器發(fā)現(xiàn)錯(cuò)誤時(shí),它就引發(fā)一個(gè)異常。當(dāng)程序沒有捕捉到異常,解釋器就打印一個(gè)堆棧跟蹤。一個(gè)源碼級(jí)調(diào)試器允許我們檢查局部和全局變量,計(jì)算表達(dá)式,設(shè)置斷點(diǎn),單步跟蹤等等。
調(diào)試器是用Python技術(shù)寫的,這證明了Python的能力。另外,最快的調(diào)試程序的方法是增加幾條打印語(yǔ)句:快捷的編輯-測(cè)試-調(diào)試周期使得這個(gè)簡(jiǎn)單的辦法十分有效。 基本的運(yùn)算式 我們直接切入正題,直接簡(jiǎn)單的教你使用 Python。 我假設(shè)讀者己有其它語(yǔ)言的基礎(chǔ),可以直接切入語(yǔ)法重點(diǎn)。
上面是 list 的使用范例。list 是一個(gè) sequence data type, 類於 C/C++ 的 array, 但 array 是 fixed length 而 list 不是, 其長(zhǎng)度是可以隨時(shí)改變的。行 1 就 bind a 為一個(gè)空的 list。 行 2 則指定 index 0 為 'aoo' string object。行 3 為 list 的 slice 的使用范例。
將 index 1 和 index 3 之間的 item(index 1 和 2) 代換成 10 和 11。行 5 的 b[:3] 則相當(dāng)於 b[0:3], 而 b[1:] 相當(dāng)於 b[1:4]。list 內(nèi)的 item 不需是相同的 type, 如上例在一個(gè) list object 里可以同時(shí)包含整數(shù)和 string 不同 type 的 item。
上面是 list 的 append() 和 insert() 兩個(gè) method 的使用范例,append 用以新增一個(gè) item 到 list 的最後面。 insert 用以在指定的位置插入一個(gè)新的 item。行 4即在 list 的 index 1 的位置(即 item 0 和 item 1 之間)插入一個(gè)新 item。
插件。
這樣可以方便地根據(jù)需求的變化改寫腳本代碼,而不是必須重新編譯鏈接二進(jìn)制的動(dòng)態(tài)鏈接庫(kù)。Python強(qiáng)大的功能足以勝任,但是有一些操作系統(tǒng)特定的功能需要用C++來實(shí)現(xiàn),再由Python調(diào)用。所以,最基礎(chǔ)地,我們需要做到:
1. 把Python嵌入到Python技術(shù)中,在C++程序中調(diào)用Python函數(shù)和獲得變量的值;
2. 用C++為Python編寫擴(kuò)展模塊(動(dòng)態(tài)鏈接庫(kù)),在Python程序中調(diào)用C++開發(fā)的擴(kuò)展功能函數(shù)。
Python 具有腳本語(yǔ)言中最豐富和強(qiáng)大的類庫(kù),足以支持絕大多數(shù)日常應(yīng)用。它的名字來源于一個(gè)喜劇,也許最初設(shè)計(jì)Python這種語(yǔ)言的人并沒有想到今天Python會(huì)在工業(yè)和科研上獲得如此廣泛的使用。
著名的自由軟件作者Eric Raymond在他的文章《如何成為一名黑客》中,將Python列為黑客應(yīng)當(dāng)學(xué)習(xí)的四種編程語(yǔ)言之一,并建議人們從Python開始學(xué)習(xí)編程。這的確是一個(gè)中肯的建議,對(duì)于那些從來沒有學(xué)習(xí)過編程或者并非計(jì)算機(jī)專業(yè)的編程學(xué)習(xí)者而言,Python是最好的選擇之一。
【編輯推薦】