<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么Python不適合寫(xiě)游戲?

          共 1426字,需瀏覽 3分鐘

           ·

          2022-12-31 00:03

          知乎上有個(gè)熱門(mén)問(wèn)題:Python 能寫(xiě)游戲嗎?有沒(méi)有什么開(kāi)源項(xiàng)目?

          Python可以開(kāi)發(fā)游戲,但不是好的選擇

          Python作為腳本語(yǔ)言,一般很少用來(lái)開(kāi)發(fā)游戲,但也有不少大型游戲有Python的身影,比如:

          • 坦克世界大戰(zhàn)(作為用戶(hù)端腳本)
          • 文明IV(作為地圖編輯器腳本)
          • 戰(zhàn)場(chǎng)2(作為游戲玩法腳本)
          • 模擬市民(作為mod腳本)
          • 新戰(zhàn)前夜(作為服務(wù)器和客戶(hù)端語(yǔ)言)
          • 迪士尼-卡通城(提供 Panda3D 引擎圖形) ...

          雖然這些游戲支持python,但python扮演的角色大多作為腳本和插件,并非游戲開(kāi)發(fā)的主語(yǔ)言。

          目前市場(chǎng)上多數(shù)游戲都是基于C++、Java等語(yǔ)言進(jìn)行開(kāi)發(fā),主要它們都是靜態(tài)語(yǔ)言,比較穩(wěn)定且速度快,能夠滿足游戲高性能的需求。

          比如《絕地求生》、《巫師3》、《黑暗之魂》等都是用C++開(kāi)發(fā)的,《碟中諜III》、《Minecraft》、《FIFA 11》等都是用Java開(kāi)發(fā)的。

          Python因?yàn)樽⒅鼐幋a效率而非計(jì)算性能,在速度和穩(wěn)定性上無(wú)法與其他語(yǔ)言媲美,幾乎很少有商業(yè)游戲是純Python開(kāi)發(fā)的。

          但Python可以通過(guò)腳本和第三方引擎為大型游戲提供組件,比如上述提到的幾款游戲。

          而且Python可以快速創(chuàng)建游戲原型,幫助開(kāi)發(fā)者進(jìn)行試驗(yàn)和debug,作為輔助工具還是不錯(cuò)的。

          可以嘗試一些Python開(kāi)源小游戲

          Github上有一些基于Python開(kāi)發(fā)的開(kāi)源小游戲,有興趣可以試試看。比如說(shuō)基于Python Pygame庫(kù)開(kāi)發(fā)植物大戰(zhàn)僵尸。

          原項(xiàng)目:marblexu/PythonPlantsVsZombies

          該游戲倉(cāng)庫(kù)主要包含三部分:游戲代碼、游戲素材、數(shù)據(jù)庫(kù)

          游戲代碼就是Pygame庫(kù)提供框架,然后python搭建游戲規(guī)則,全部代碼將近3000行。

          游戲素材主要包括僵尸、植物、背景等圖片,圖片會(huì)導(dǎo)入進(jìn)游戲界面,然后寫(xiě)動(dòng)態(tài)事件過(guò)程來(lái)實(shí)現(xiàn)游戲畫(huà)面。

          數(shù)據(jù)庫(kù)是用json來(lái)存儲(chǔ)游戲過(guò)程數(shù)據(jù),這里包括了位置、時(shí)間、關(guān)卡等。

          我專(zhuān)門(mén)錄了個(gè)視頻講解下如何去下載,并在本地電腦執(zhí)行。

          還有很多小游戲可以用Python實(shí)現(xiàn),我覺(jué)得是非常有趣的過(guò)程,初學(xué)者可以玩玩。

          比如這個(gè)github倉(cāng)庫(kù)提供了很多免費(fèi)小游戲的代碼和demo:

          grantjenks/free-python-games

          Python游戲開(kāi)發(fā)的主要框架

          Python有很多游戲開(kāi)發(fā)框架,比如說(shuō)

          PyGame:PyGame在優(yōu)秀的SDL庫(kù)之上添加了更多功能。允許使用python語(yǔ)言創(chuàng)建功能齊全的游戲和多媒體程序。具有高度的可移植性,幾乎可以在所有平臺(tái)和操作系統(tǒng)上運(yùn)行

          PySoy:Python 3的高級(jí)3D游戲引擎,緊密結(jié)合了渲染,物理,動(dòng)畫(huà)和網(wǎng)絡(luò)

          Pyglet:用于opengl的跨平臺(tái)窗口和Python的多媒體庫(kù),可在mods / bfheores / python文件夾中找到

          Python-Ogre:用于OGRE 3D引擎的完整python包裝器,以及用于GUI,物理,特效,聲音等的15個(gè)其他圖形和游戲相關(guān)庫(kù)

          Panda3d:專(zhuān)門(mén)用于python的全功能開(kāi)源3d引擎,但用c ++編寫(xiě)。功能:性能,多平臺(tái)支持,場(chǎng)景圖,導(dǎo)出/導(dǎo)入,3D音頻,碰撞檢測(cè),物理,瀏覽器插件,動(dòng)畫(huà)等

          Blender3D:GNU GPL許可下的開(kāi)源游戲引擎器,動(dòng)畫(huà)師和3D渲染器。使用Python作為腳本語(yǔ)言

          Python游戲可以幫助你學(xué)習(xí)語(yǔ)法

          對(duì)于Python初學(xué)者來(lái)說(shuō),雖然不為了做游戲,但通過(guò)寫(xiě)游戲來(lái)學(xué)習(xí)語(yǔ)法是很好的方法,唯有多動(dòng)手才能掌握編程的真諦。

          瀏覽 79
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲AV无码秘 蜜桃枫花恋 | 亚洲av免费在线看 | 国产无码免费在线观看 | 97大香蕉网 | 亚洲婷婷六月天 |