python開發俄羅斯方塊小遊戲程式碼例項
1.操作環境
win10系統,python3.5以上系統,
2.相關模組
pyqt5模組;
以及一些Python自帶的模組。
3.安裝Python並新增到環境變數,pip安裝需要的相關模組。
pip install -r requirements.txt
4.執行下面程式碼
''' Function: 俄羅斯方塊主程式 Author: Charles 公眾號: Charles的皮卡丘 ''' import os import sys import random from modules import * from PyQt5 . QtGui import * from PyQt5 . QtCore import * from PyQt5 . QtWidgets import * '''定義俄羅斯方塊遊戲類''' class TetrisGame ( QMainWindow ): def __init__ ( self , parent = None ): super ( TetrisGame , self ). __init__ ( parent ) # 是否暫停ing self . is_paused = False # 是否開始ing self . is_started = False self . initUI () '''介面初始化''' def initUI ( self ): # icon self . setWindowIcon ( QIcon ( os . path . join ( os . getcwd (), 'resources/icon.jpg' ))) # 塊大小 self . grid_size = 22 # 遊戲幀率 self . fps = 200 self . timer = QBasicTimer () # 焦點 self . setFocusPolicy ( Qt . StrongFocus ) # 水平佈局 layout_horizontal = QHBoxLayout () self . inner_board = InnerBoard () self . external_board = ExternalBoard ( self , self . grid_size , self . inner_board ) layout_horizontal . addWidget ( self . external_board ) self . side_panel = SidePanel ( self , self . grid_size , self . inner_board ) layout_horizontal . addWidget ( self . side_panel ) self . status_bar = self . statusBar () self . external_board . score_signal [ str ]. connect ( self . status_bar . showMessage ) self . start () self . center () self . setWindowTitle ( 'Tetris —— Charles的皮卡丘' ) self . show () self . setFixedSize ( self . external_board . width () + self . side_panel . width (), self . side_panel . height () + self . status_bar . height ()) '''遊戲介面移動到螢幕中間''' def center ( self ): screen = QDesktopWidget (). screenGeometry () size = self . geometry () self . move (( screen . width () - size . width ()) // 2 , ( screen . height () - size . height ()) // 2 ) '''更新介面''' def updateWindow ( self ): self . external_board . updateData () self . side_panel . updateData () self . update () '''開始''' def start ( self ): if self . is_started : return self . is_started = True self . inner_board . createNewTetris () self . timer . start ( self . fps , self ) '''暫停/不暫停''' def pause ( self ): if not self . is_started : return self . is_paused = not self . is_paused if self . is_paused : self . timer . stop () self . external_board . score_signal . emit ( 'Paused' ) else : self . timer . start ( self . fps , self ) self . updateWindow () '''計時器事件''' def timerEvent ( self , event ): if event . timerId () == self . timer . timerId (): removed_lines = self . inner_board . moveDown () self . external_board . score += removed_lines self . updateWindow () else : super ( TetrisGame , self ). timerEvent ( event ) '''按鍵事件''' def keyPressEvent ( self , event ): if not self . is_started or self . inner_board . current_tetris == tetrisShape (). shape_empty : super ( TetrisGame , self ). keyPressEvent ( event ) return key = event . key () # P鍵暫停 if key == Qt . Key_P : self . pause () return if self . is_paused : return # 向左 elif key == Qt . Key_Left : self . inner_board . moveLeft () # 向右 elif key == Qt . Key_Right : self . inner_board . moveRight () # 旋轉 elif key == Qt . Key_Up : self . inner_board . rotateAnticlockwise () # 快速墜落 elif key == Qt . Key_Space : self . external_board . score += self . inner_board . dropDown () else : super ( TetrisGame , self ). keyPressEvent ( event ) self . updateWindow () '''run''' if __name__ == '__main__' : app = QApplication ([]) tetris = TetrisGame () sys . exit ( app . exec_ ())
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3402/viewspace-2830829/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 實戰開發俄羅斯方塊遊戲Python遊戲
- Python:遊戲:300行程式碼實現俄羅斯方塊Python遊戲行程
- Tetris 俄羅斯方塊遊戲遊戲
- 基於Flutter的俄羅斯方塊小遊戲Flutter遊戲
- 【Java遊戲】java俄羅斯方塊!Java遊戲
- 俄羅斯方塊聯機小遊戲的實現遊戲
- 使用C#和MonoGame開發俄羅斯方塊遊戲C#MonoGAM遊戲
- pyqt5製作俄羅斯方塊小遊戲-----原始碼解析QT遊戲原始碼
- 基於MonoGame重製《俄羅斯方塊》遊戲MonoGAM遊戲
- [分享]純python3手寫Tetris(俄羅斯方塊)遊戲Python遊戲
- 俄羅斯方塊練習
- 最新《 java實戰開發俄羅斯方塊教程》Java
- 300行Python程式碼實現俄羅斯方塊,致敬逝去的童年Python
- canvas實現俄羅斯方塊Canvas
- 俄羅斯方塊(JS+CSS)JSCSS
- Flutter Web 實戰 - 俄羅斯方塊FlutterWeb
- Python3+pygame實現的俄羅斯方塊 程式碼完整 有演示效果PythonGAM
- 用 SQL 寫的俄羅斯方塊遊戲「GitHub 熱點速覽」SQL遊戲Github
- 俄羅斯方塊+塔防 國產獨立遊戲《方境戰記》5月25日發售遊戲
- 使用JavaScript實現一個俄羅斯方塊JavaScript
- 《俄羅斯方塊》系列 35 週年 一窺遊戲歷年玩法演變遊戲
- 俄羅斯方塊歷史發展與變革創新
- 騰訊投資俄羅斯遊戲開發商Mundfish遊戲開發
- 為了上班摸魚我用Python製作了俄羅斯方塊?Python
- 【補檔STM32】STM32F103俄羅斯方塊遊戲實現遊戲
- 函數語言程式設計嘗試之俄羅斯方塊函數程式設計
- 如何讓 Emacs 俄羅斯方塊變得更難Mac
- wxpython入門第十一步(俄羅斯方塊)Python
- c#實現簡單的俄羅斯方塊C#
- 如何讓AI教機器自己玩俄羅斯方塊?AI
- 讓王老菊也翻車的“俄羅斯方塊”+硬核策略遊戲,手機版終於發售!遊戲
- 用React、Redux、Immutable做俄羅斯方塊 | 掘金技術徵文ReactRedux
- 從俄羅斯方塊,邁向強化學習大門強化學習
- 初學者——Java之實現簡易俄羅斯方塊Java
- 美國軍方公開了俄羅斯政府的惡意程式
- “漢字俄羅斯方塊”《一字不落》今日上架Steam
- 網賺APP的“俄羅斯套娃”遊戲APP遊戲
- 翻譯中國遊戲的俄羅斯姑娘遊戲