成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 竟能開發如此精美的俄羅斯方塊

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

前言

本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。

 

Python 竟能開發如此精美的俄羅斯方塊

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

1.游戲介紹

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

  1. 單人模式
  2. 普通雙人模式
  3. 鏡像雙人模式(即掉落方塊都一樣)
  4. 雙人加速模式(每消去一行都會給對方加速)
  5. 雙人交換控制模式(一次控制自己的方塊,一次控制對方的)
  6. 雙人平衡模式(會改變對方的容量)
  7. 雙人單容器模式

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

 

Python 竟能開發如此精美的俄羅斯方塊

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

 

Python 竟能開發如此精美的俄羅斯方塊

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

 

Python 竟能開發如此精美的俄羅斯方塊

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

 

Python 竟能開發如此精美的俄羅斯方塊

2.源碼剖析

當然,我們首要目的還是學習這款游戲的源代碼,下面就給大家介紹一些這款游戲的部分核心代碼。下載該開源項目后,你會發現它的py文件分布如下:

 

  1. │ base.py  
  2. │ game_modes.py  
  3. │ main.py  
  4. │ run_to_release.py  
  5. │ tetris.py  
  6. │ ... ....  
  7. ├─assets 
  8.  │ ... ...  
  9. │  
  10. └─screens  
  11. ... ... 

其中,main.py是程序的入口點,首先看看模塊引入,sys的引入是當然的,游戲結束的時候需要調用

  1. sys.exit() 

使得Python程序正常退出。這個游戲的引擎使用了pygame,是一個比較老的基于Python的2D游戲引擎,不過也是因為存在時間長,它已經成為一個很成熟且易上手的2D游戲開發庫 。

 

Python 竟能開發如此精美的俄羅斯方塊

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

不過由于時間關系,我們重點看看base里的主循環main_loop:

 

Python 竟能開發如此精美的俄羅斯方塊

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

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

  1. pressed_keys.add(event.key

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

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

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2015-01-22 15:36:46

游戲源碼

2011-06-13 18:21:12

2014-10-08 10:04:14

代碼解釋俄羅斯方塊

2021-01-12 12:16:55

鴻蒙HarmonyOS游戲

2020-02-27 13:43:14

Emacs俄羅斯方塊應用

2021-12-29 11:56:16

Linux俄羅斯方塊

2014-05-26 10:07:18

Javascript俄羅斯方塊

2016-06-13 10:21:49

二維碼條形碼二進制

2015-04-28 09:21:28

JSJS俄羅斯方塊游戲帝國

2023-09-25 12:35:27

Python

2020-12-17 10:02:16

鴻蒙Hi3861開發板

2009-06-08 09:59:24

谷歌俄羅斯方塊版權

2023-09-26 08:51:29

PygamePython語言

2014-06-09 12:47:35

俄羅斯方塊

2012-11-05 10:50:50

程序員萬圣節俄羅斯方塊

2020-12-11 12:45:04

鴻蒙Hi3861游戲

2011-11-17 16:14:25

Jscex

2023-10-17 10:20:53

VueReact

2022-11-29 16:35:02

Tetris鴻蒙

2025-05-28 01:20:00

JetpackCompose元素
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av看片| 久久亚洲精品国产精品紫薇 | 国产成人精品免费视频 | 免费观看一级特黄欧美大片 | 成人免费看片网 | 久久成人午夜 | 99久久久久 | av免费看片| 中文字幕精品一区 | 久热精品在线 | 亚洲精品一区久久久久久 | 免费av电影网站 | 在线成人av| 亚洲精品视频一区二区三区 | 一区二区久久 | 国产精品永久 | 午夜精品视频 | 欧洲精品在线观看 | 色婷婷综合久久久中字幕精品久久 | 国产专区在线 | 97caoporn国产免费人人 | 亚洲 日本 欧美 中文幕 | 久久久精彩视频 | 玩丰满女领导对白露脸hd | 精品毛片视频 | 中文字幕一区二区三区乱码图片 | 亚洲精品乱码久久久久久久久 | 成人国产精品免费观看 | 欧美性tv | 伊人伊成久久人综合网站 | 免费国产精品久久久久久 | 亚洲精品一区二区三区在线观看 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 亚洲视频手机在线 | 精品av | 日韩毛片| 国产精品国产精品 | 国产黄色大片 | 久久久69| 中文字幕日本一区二区 | 国产精品久久久乱弄 |