前言:
上班無聊用pyqt5寫的寫了個俄羅斯方塊的小遊戲,讓我們愉快地開始吧~
效果
開發工具
Python版本: 3.6.4
相關子產品:
pyqt5子產品;
以及一些Python自帶的子產品。
環境搭建
安裝Python并添加到環境變量,pip安裝需要的相關子產品即可。
原理簡介
遊戲規則:
由小方塊組成的不同形狀的闆塊陸續從螢幕上方落下來,玩家通過調整闆塊的位置和方向,使它們在螢幕底部拼出完整的一條或幾條。這些完整的橫條會随即消失,給新落下來的闆塊騰出空間,與此同時,玩家得到分數獎勵。沒有被消除掉的方塊不斷堆積起來,一旦堆到螢幕頂端,玩家便告輸,遊戲結束。(ps百度百科)
控制方式:
←→鍵控制位置,↑鍵控制方向,空格鍵使闆塊快速下落到底部,P鍵暫停遊戲。
逐漸實作:
Step1:定義一個俄羅斯方塊
首先,我們來定義一個俄羅斯方塊類,其具體作用為利用小方塊組成不同形狀的闆塊:
為了便于擷取某個俄羅斯方塊内各個小方塊的位置資訊,我們再來定義一些擷取其位置資訊的類内方法,如下圖所示:
Step2:制作遊戲主界面
我們将遊戲進行中的資料記錄與資料處理部分定義在内部闆塊類中,将遊戲資料可視化定義在外部闆塊類中,具體實作如下。
(1)定義一個内部闆塊類:
我們可以在内部闆塊中操作目前可控制的俄羅斯方塊向左/向右/向下(向下運動由系統自動操作)移動和快速墜落:
當然移動的時候要實時地判斷目前可控制的俄羅斯方塊是否已經“着陸”:
“着陸”後将目前可控制的俄羅斯方塊并入到最下方那些不可再控制的俄羅斯方塊中,并移除整行都有小方塊的那些行(即完整的橫條):
然後建立新的俄羅斯方塊:
循環往複。
(2)定義一個外部闆塊類
其作用就是将内部闆塊類的實時資料資訊用pyqt5子產品實時地顯示出來。
Step3:畫個遊戲側面闆
我們在遊戲主界面右側畫個側面闆來實時地顯示下一個俄羅斯方塊的形狀:
Step4:實作遊戲主循環
定義俄羅斯方塊遊戲類并初始化:
其中遊戲開始和遊戲暫停的定義如下:
按鍵監聽定義如下:
然後調用執行它就OK啦:
文章到這裡就結束了,感謝你的觀看,Python24個小遊戲系列,下篇文章分享推箱子小遊戲