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遊戲
- 基於Flutter的俄羅斯方塊小遊戲Flutter遊戲
- pyqt5製作俄羅斯方塊小遊戲-----原始碼解析QT遊戲原始碼
- checkbox核取方塊美化程式碼例項
- css氣泡對話方塊程式碼例項CSS
- 俄羅斯方塊聯機小遊戲的實現遊戲
- Python:遊戲:300行程式碼實現俄羅斯方塊Python遊戲行程
- canvas小遊戲程式碼例項Canvas遊戲
- 我的俄羅斯方塊程式
- android遊戲開發之我的小小遊戲3——俄羅斯方塊遊戲3Android遊戲開發
- 最新《 java實戰開發俄羅斯方塊教程》Java
- 核取方塊全選和全不選程式碼例項
- 模擬美化checkbox核取方塊程式碼例項
- 趣味python程式設計之經典俄羅斯方塊Python程式設計
- 使用C#和MonoGame開發俄羅斯方塊遊戲C#MonoGAM遊戲
- 300行Python程式碼實現俄羅斯方塊,致敬逝去的童年Python
- 請大家談談‘俄羅斯方塊程式
- Python3+pygame實現的俄羅斯方塊 程式碼完整 有演示效果PythonGAM
- jQuery獲取選中核取方塊的值程式碼例項jQuery
- css點選附近文字選中核取方塊程式碼例項CSS
- javascript貪吃蛇小遊戲程式碼例項JavaScript遊戲
- Tetris 俄羅斯方塊遊戲遊戲
- 一個俄羅斯方塊的原始碼 (轉)原始碼
- 一個俄羅斯方塊遊戲源程式 (轉)遊戲
- checkbox核取方塊全選和取消全選例項程式碼
- 獲取選中checkbox核取方塊的值程式碼例項
- 【Java遊戲】java俄羅斯方塊!Java遊戲
- canvas實現俄羅斯方塊Canvas
- Win32俄羅斯方塊Win32
- 俄羅斯方塊(JS+CSS)JSCSS
- css3自定義checkbox核取方塊打勾效果程式碼例項CSSS3
- 判斷核取方塊中是否有被選中的程式碼例項
- 檢測checkbox核取方塊是否被選中的例項程式碼
- css3實現的checkbox核取方塊美化程式碼例項CSSS3
- python開發例項-python開發案例Python
- HTML5 canvas遊戲開發實戰 6 : 俄羅斯方塊HTMLCanvas遊戲開發
- css3單選框、核取方塊和開關按鈕美化效果程式碼例項CSSS3
- 一個javascript指令碼寫的俄羅斯方塊 (轉)JavaScript指令碼