<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 不適合寫游戲?

          共 2375字,需瀏覽 5分鐘

           ·

          2022-12-20 22:24

          這是「進(jìn)擊的Coder」的第 768 ?篇技術(shù)分享 作者:朱衛(wèi)軍 來源:Python 大數(shù)據(jù)分析

          閱讀本文大概需要 5 分鐘。



          知乎上有個(gè)熱門問題:Python 能寫游戲嗎?有沒有什么開源項(xiàng)目?

          ee141986ac2ff9e76cb3d93615058c99.webp

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

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

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

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

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

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

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

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

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

          可以嘗試一些Python開源小游戲

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

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

          10ac64e7f1a70c19fec9610ac12ecb1e.webp

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

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

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

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

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

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

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

          grantjenks/free-python-games

          904d86c754093f4d61b8e55f2800020d.webp

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

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

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

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

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

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

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

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

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

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

              

          End

          崔慶才的新書《Python3網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)(第二版)》已經(jīng)正式上市了!書中詳細(xì)介紹了零基礎(chǔ)用 Python 開發(fā)爬蟲的各方面知識(shí),同時(shí)相比第一版新增了 JavaScript 逆向、Android 逆向、異步爬蟲、深度學(xué)習(xí)、Kubernetes 相關(guān)內(nèi)容,?同時(shí)本書已經(jīng)獲得 Python 之父 Guido 的推薦,目前本書正在七折促銷中!

          內(nèi)容介紹:《Python3網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)(第二版)》內(nèi)容介紹


          36935aca83103e86420d91e61e010118.webp


          掃碼購(gòu)買




          43077cadb1047217b2b23587ba5391e3.webp

          點(diǎn)個(gè)在看你最好看

          54a605b983405b1f5994050cca75881e.webp
          瀏覽 57
          點(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>
                  大香蕉在线啪啪 | 在线免费观看黄片 | 国产精品77777 | 天天综合网永久 | 中文字幕日本有码 |