真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python如何開發(fā)精美的俄羅斯方塊

Python如何開發(fā)精美的俄羅斯方塊,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了零陵免費(fèi)建站歡迎大家使用!

前言

Python如何開發(fā)精美的俄羅斯方塊

最近想找一些Python相關(guān)的游戲開發(fā)例子,正好在itch.io上閑逛看到這個俄羅斯方塊項(xiàng)目,瞬間被驚艷到了。

1.游戲介紹

下面就給大家介紹一下這個用Python寫的俄羅斯方塊具體功能。它一共有七個游戲模式:

  1. 單人模式

  2. 普通雙人模式

  3. 鏡像雙人模式(即掉落方塊都一樣)

  4. 雙人加速模式(每消去一行都會給對方加速)

  5. 雙人交換控制模式(一次控制自己的方塊,一次控制對方的)

  6. 雙人平衡模式(會改變對方的容量)

  7. 雙人單容器模式

沒錯,是不是被這豐富的游戲模式震驚到了?而且這款游戲的界面設(shè)計也是相當(dāng)簡潔舒服(而且玩這樣的Python開源游戲,你永遠(yuǎn)不會被廣告氣到):

Python如何開發(fā)精美的俄羅斯方塊

不僅如此,除了wasd和上下左右鍵,它還支持用游戲手柄(僅一個)進(jìn)行游戲,并且能切換兩個玩家的按鍵設(shè)置:

Python如何開發(fā)精美的俄羅斯方塊

雙人模式類似如下, 非常適合小情侶之間消耗時光哦(如果你們都喜歡玩俄羅斯方塊的話)

Python如何開發(fā)精美的俄羅斯方塊

尤其是雙人協(xié)作模式,兩個人一起解決問題也是增進(jìn)感情的好方法:

Python如何開發(fā)精美的俄羅斯方塊

2.源碼剖析

當(dāng)然,我們首要目的還是學(xué)習(xí)這款游戲的源代碼,下面就給大家介紹一些這款游戲的部分核心代碼。下載該開源項(xiàng)目后,你會發(fā)現(xiàn)它的py文件分布如下:

│ base.py  │ game_modes.py  │ main.py  │ run_to_release.py  │ tetris.py  │ ... ....  ├─assets  │ ... ...  │  └─screens  ... ...

其中,main.py是程序的入口點(diǎn),首先看看模塊引入,sys的引入是當(dāng)然的,游戲結(jié)束的時候需要調(diào)用

sys.exit()

使得Python程序正常退出。這個游戲的引擎使用了pygame,是一個比較老的基于Python的2D游戲引擎,不過也是因?yàn)榇嬖跁r間長,它已經(jīng)成為一個很成熟且易上手的2D游戲開發(fā)庫  。

Python如何開發(fā)精美的俄羅斯方塊

作者自己寫了兩個模塊,一個是base,里面有畫布配置、按鍵配置、玩家配置等等一系列游戲的基礎(chǔ)設(shè)置。而 game_modes  則是七種游戲模式的邏輯所在模塊,里頭還引用了tetris.py,這個模塊定義了整個俄羅斯方塊旋轉(zhuǎn)的方法及其數(shù)據(jù)結(jié)構(gòu)。

不過由于時間關(guān)系,我們重點(diǎn)看看base里的主循環(huán)main_loop:

Python如何開發(fā)精美的俄羅斯方塊

pygame.time.Clock() 用于配置游戲的幀數(shù),Clock.tick(frameate)  代表每秒framerate幀運(yùn)行,也就是說,每秒不會執(zhí)行超過 framerate 次循環(huán) 。這個參數(shù)的值,我們可以在主函數(shù)里看到是600.  也就是這個循環(huán)每秒不會超過600次。

pygame.event.get()  是pygame游戲引擎的事件處理器,它用于處理所有的事件,好像打開大門讓所有的人進(jìn)入,然后我們可以根據(jù)事件不同的屬性做相應(yīng)的操作,如 event.type ==  pgl.KEYDOWN 表示鍵盤被按下時,執(zhí)行條件中的語句:

pressed_keys.add(event.key)

便將其加入到pressed_keys集合中,yield返回生成器,也就是說只要程序不被終止,這個函數(shù)就會不斷地返回四個值: events,  time_passed, pressed_keys 或 {(0,  0)}。events就是用戶觸發(fā)的事件,time_passed就是這些事件的時長,pressed_keys即用戶按下的鍵。

這樣就完成了一次用戶事件的傳遞,然后再又后端對用戶的事件進(jìn)行處理,展示在游戲當(dāng)中。當(dāng)然,更復(fù)雜的還在后面,這里只是一個簡單的事件處理,當(dāng)然也是最重要的事件處理部分。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。


當(dāng)前文章:Python如何開發(fā)精美的俄羅斯方塊
分享路徑:http://weahome.cn/article/gsocpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部