使用PyQt5怎么实现一个踩白块游戏

  介绍

这篇文章给大家介绍使用PyQt5怎么实现一个踩白块游戏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

具体内容如下

#引入可能用到的库   得到PyQt5.QtWidgets  import  (QWidget, QApplication, QPushButton, QMessageBox, QLabel, QDesktopWidget, QMainWindow)   得到PyQt5.QtCore  import  Qt, QRect QSize, QPoint QTimer   得到PyQt5.QtGui  import  QPainter, QFont,, QColor, QPen, QIcon, QBrush   import 系统   import 随机   ,   class  mainForm (QMainWindow):   自我,def  __init__ ():   ,   超级才能(). __init__ ()   self.initUI才能()   self.show才能()   ,   ,def  initUI(自我):   ,   self.setWindowTitle才能(“Step  Game")   self.setGeometry才能(0,0520360)   self.setWindowIcon才能(QIcon (R" Doraemon.ico"))   self.center才能()   ,   self.myBoard才能=(日)   self.myBoard.resize才能(500400)   self.myBoard.move才能(10,10)   self.myBoard.setParent才能(自我)   ,   ,def 中心(自我):   ,   帧才能=self.frameGeometry ()   .availableGeometry availableCenter才能=QDesktopWidget () () .center ()   frame.moveCenter才能(availableCenter)   self.move才能(frame.topLeft ())   ,   ,   class 董事会(QWidget):   ,   自我,def  __init__ ():   超级才能(). __init__ ()   self.initUI才能()   self.initPath才能()   ,self.isStarted=False   ,def  initUI(自我):   ,   _font才能=QFont (“Roman  times" 16 QFont.Bold)   ,   self.tipLabel才能=QLabel(“加油!“,自我)   self.tipLabel.setFont才能(_font)   self.tipLabel.move才能(300310)   ,   self.timingLabel才能=QLabel (“0 s"自我)   self.timingLabel.move才能(200310)   self.timingLabel.setFont才能(_font)   ,   self.startButton才能=QPushButton(“开始“,自我)   self.startButton.setFont才能(_font)   self.startButton.move才能(20310)   self.startButton.clicked.connect才能(self.start)   ,   self.costTimer才能=QTimer ()   self.costTimer.timeout.connect才能(self.tick)   ,   时间=self.myPainter 才能;QPainter ()   #才能让这个整个控件获得焦点   self.setFocusPolicy才能(Qt.StrongFocus)   #才能为了不让按钮获得焦点   self.startButton.setFocusPolicy才能(Qt.NoFocus)   ,   ,def  initPath(自我):   ,   self.queue才能=[(0,0,0),[1,2,3]]   ,   for 才能小姐:拷贝范围(100):#从123中随机选取两个数字   ,,_num=random.randint (1、3)   ,,_oneTowThree=(1、2、3)   ,,_oneTowThree.remove (_num)   ,,self.queue.append (_oneTowThree)   ,   for 才能,小姐;(5)范围:#地拷贝图的最后有空的方块   ,,self.queue.append ([])   ,   开始,def (自我):   ,,   ,self.isStarted=True   self.currentX才能=1   self.timeCost才能=0   self.currentY=random.randint才能(1、3)   self.previouY=self.currentY才能   self.costTimer.start才能(1000)   self.repaint才能()   ,   蜱虫,def (自我):   ,   self.timeCost才能+=1   self.timingLabel.setText才能(str (self.timeCost) +“S")   ,   ,def  paintEvent(自我,e):   #点才能击开始之前,currenX变量还没有初始化、下面的代码会引用这个变量,导致出的错   if 才能;self.isStarted==False:回报   #才能开始画的图   self.myPainter.begin才能(自我)   #才能画背景   self.drawBackGround才能()   ,,   时间间隔才能=2 #方块之间的间隔的二分之一   #才能画场景   for 才能小姐:拷贝范围(5):   ,,_item =, self.queue[小姐:+,self.currentX-1]   ,,for  _num  _item:拷贝   ,,,#确定每个方块的位置和大小   ,,,_startPoint =, QPoint(小姐:*(100 +间隔),(_num  1) *,(100 +间隔),)   ,,,_size =, QSize((100 - 2 *间隔),(100 - 2 *间隔))   ,,,#设置画笔和画刷   ,,,self.myPainter.setPen (QColor.fromRgb (255,, 255,, 255))   ,,,self.myPainter.setBrush (QColor.fromRgb (205211159))   ,,,#画方块们   ,,,self.myPainter.drawRect (QRect (_startPoint, _size))   #才能画currentMe   #才能设置画笔和画刷   时间=_myPen 才能;QPen (Qt.white)   self.myPainter.setPen才能(_myPen), #,笔用来画边框   self.myPainter.setBrush才能(QColor.fromRgb (105,, 139,, 105))   #才能确定每个方块的位置和大小   _startPoint 才能=,QPoint(100 +间隔,,(100 +间隔),* (self.currentY-1))   _size 才能=,QSize((100 - 2 *间隔),(100 - 2 *间隔))   #才能画方块   self.myPainter.drawRect才能(QRect (_startPoint, _size))   #才能结束画的图   self.myPainter.end才能()   ,   ,def  drawBackGround(自我):   ,   时间=_myPen 才能;QPen (Qt.white)   ,   self.myPainter.setPen才能(_myPen), #,笔用来画边框   self.myPainter.setBrush才能(QColor.fromRgb (255239124))   ,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用PyQt5怎么实现一个踩白块游戏