往期回顧
Python實作“小兔子和Bun”游戲
Python實作八音符小游戲
Python實作拼圖小游戲
Python實作滑雪小游戲
Python實作經典90坦克大戰
Python實作FlappyBird的小游戲
Python實恐龍跳一跳小游戲現
Python實作塔防小游戲
Python實作接水果和金幣小游戲
Python實作簡易版飛機大戰小游戲
前言:
上班無聊用pyqt5寫的寫了個俄羅斯方塊的小游戲,讓我們愉快地開始吧~
效果

開發工具
Python版本: 3.6.4
相關模塊:
pyqt5模塊;
以及一些Python自帶的模塊,
環境搭建
安裝Python并添加到環境變數,pip安裝需要的相關模塊即可,
原理簡介
游戲規則:
由小方塊組成的不同形狀的板塊陸續從螢屏上方落下來,玩家通過調整板塊的位置和方向,使它們在螢屏底部拼出完整的一潭訓幾條,這些完整的橫潭訓隨即消失,給新落下來的板塊騰出空間,與此同時,玩家得到分數獎勵,沒有被消除掉的方塊不斷堆積起來,一旦堆到螢屏頂端,玩家便告輸,游戲結束,(ps百度百科)
控制方式:
←→鍵控制位置,↑鍵控制方向,空格鍵使板塊快速下落到底部,P鍵暫停游戲,
逐步實作:
Step1:定義一個俄羅斯方塊
首先,我們來定義一個俄羅斯方塊類,其具體作用為利用小方塊組成不同形狀的板塊:

為了便于獲取某個俄羅斯方塊內各個小方塊的位置資訊,我們再來定義一些獲取其位置資訊的類內方法,如下圖所示:

Step2:制作游戲主界面
我們將游戲進行中的資料記錄與資料處理部分定義在內部板塊類中,將游戲資料可視化定義在外部板塊類中,具體實作如下,
(1)定義一個內部板塊類:

我們可以在內部板塊中操作當前可控制的俄羅斯方塊向左/向右/向下(向下運動由系統自動操作)移動和快速墜落:

當然移動的時候要實時地判斷當前可控制的俄羅斯方塊是否已經“著陸”:

“著陸”后將當前可控制的俄羅斯方塊并入到最下方那些不可再控制的俄羅斯方塊中,并移除整行都有小方塊的那些行(即完整的橫條):

然后創建新的俄羅斯方塊:

回圈往復,
(2)定義一個外部板塊類

其作用就是將內部板塊類的實時資料資訊用pyqt5模塊實時地顯示出來,
Step3:畫個游戲側面板
我們在游戲主界面右側畫個側面板來實時地顯示下一個俄羅斯方塊的形狀:

Step4:實作游戲主回圈
定義俄羅斯方塊游戲類并初始化:

其中游戲開始和游戲暫停的定義如下:

按鍵監聽定義如下:

然后呼叫執行它就OK啦:

文章到這里就結束了,感謝你的觀看,Python24個小游戲系列,下篇文章分享推箱子小游戲
為了感謝讀者們,我想把我最近收藏的一些編程干貨分享給大家,回饋每一個讀者,希望能幫到你們,
干貨主要有:
① 2000多本Python電子書(主流和經典的書籍應該都有了)
② Python標準庫資料(最全中文版)
③ 專案原始碼(四五十個有趣且經典的練手專案及原始碼)
④ Python基礎入門、爬蟲、web開發、大資料分析方面的視頻(適合小白學習)
⑤ Python學習路線圖(告別不入流的學習)
⑥ 兩天的Python爬蟲訓練營直播權限
All done~點贊支持下~詳見個人簡介或者私信獲取完整源代碼,,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290527.html
標籤:其他
下一篇:談初學編程
