Python中怎么用Pygame实现欢乐打地鼠游戏
这篇“Python中怎么用Pygame实现欢乐打地鼠游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中怎么用Pygame实现欢乐打地鼠游戏”文章吧。
游戏规则:
击中一个积一分,规定时间内打中几个就是几个,逃离几个就是几个都有专门的记录。游戏初始设
定是30秒,可自己设置时间的哈,打中的越多越好, 还可以跟小伙伴儿比赛。
一、准备中1)素材准备(音乐+背景+图标等)
这些都是可以自己进行修改的啦!其实随便修改下图片素材就可以成为一款新游戏的啦!比如平底
锅打灰太狼:
再比如猫抓老鼠等很简单的啦!换掉地鼠的图案,然后锤子换成平底锅嘛~
二、环境安装本文涉及的环境:Python3、Pycharm、Pygame、Pyqt5以及部分自带模块。
模块安装:大家习惯使用什么用什么,使用镜像源安装更快速不容易报错。
pip install +模块名
或带豆瓣镜像源 pip install -i https://pypi.douban.com/simple/ +模块名
importsysimportosfromPyQt5importQtCorefromPyQt5importQtWidgetsfromPyQt5.QtCoreimport*fromPyQt5.QtGuiimport*fromPyQt5.QtWidgetsimport*fromPyQt5.QtSqlimportQSqlDatabase,QSqlQueryimportrandomimportpygame2)不同的图片设置
运行代码出的地鼠图片、被砸之后的地鼠,然后砸下去、 没砸下去的锤子图片分别是不一样的状态。
classvirus(QPushButton):def__init__(self,parent=None):super().__init__(parent)self.setFixedSize(160,120)#self.resize(40,30)self.setStyleSheet("QPushButton{border-image:url(sucai/地洞2.png)}")#地洞self.upTime=QTimer()self.upTime.timeout.connect(self.up)defkill(self):try:ifself.flag==1:self.setStyleSheet("QPushButton{border-image:url(sucai/killvirus2.png)}")#被砸globalscorescore+=1self.flag=0except:passdefmousePressEvent(self,event):self.setCursor(QCursor(QPixmap(r"sucai/down.png")))self.upTime.start(100)self.kill()defup(self):self.setCursor(QCursor(QPixmap(r"sucai/up.png")))3)界面头标、标题等。
classTopWindow(QWidget):def__init__(self,parent=None):super().__init__(parent)self.virusnum=0self.setWindowTitle("消灭地鼠小游戏")self.setWindowIcon(QIcon(r'sucai/图标.jpg'))self.timer=QTimer()#全局计时器self.timer.timeout.connect(self.gameover)#结束时调用self.virustimer=QTimer()#出现时间计时器self.virustimer.timeout.connect(self.virusactive)self.remaintimer=QTimer()#剩余时间计时器self.remaintimer.timeout.connect(self.remainTimeshow)self.virusSign=Noneself.user=Noneglobalscorescore=04)音乐设置
运行代码即可有背景音乐、还可以点击暂停、静音等等。
#播放音乐pygame.init()pygame.mixer.music.load(r"sucai/Game.mp3")pygame.mixer.music.play()defhandle_music_button(self):btn=self.sender()ifbtnisnotNone:text=btn.text()iftext=="音乐????":btn.setText("静音????")pygame.mixer.music.pause()else:btn.setText("音乐????")pygame.mixer.music.unpause()5)右侧窗口控件不同的按钮设置
#右侧固定窗口内控件self.settingslayout=QGridLayout()#网格布局self.settingsWidget=QWidget()self.settingsWidget.setFixedSize(80,350)self.imagelayout.addWidget(self.settingsWidget,0,5,1,5)self.settingsWidget.setLayout(self.settingslayout)#self.startPushButton=QPushButton("开始游戏")self.startPushButton=QtWidgets.QPushButton(text="开始游戏",clicked=self.handle_play_button)self.startPushButton.setFixedSize(80,40)#self.startPushButton.clicked.connect(self.gamestart)#绑定信号self.textBrowser=QTextBrowser()self.textBrowser.setText('游戏未开始')self.textBrowser.setFixedSize(70,40)self.killBrowser=QTextBrowser()self.killBrowser.setText('消灭地鼠数:0')self.killBrowser.setFixedSize(70,50)self.escapeBrowser=QTextBrowser()self.escapeBrowser.setText('逃离地鼠数:0')self.escapeBrowser.setFixedSize(70,50)self.remaintimeText=QTextBrowser()self.remaintimeText.setText('剩余时间:\n30s')self.remaintimeText.setFixedSize(70,55)self.endPushButton=QPushButton("结束游戏")self.endPushButton.setFixedSize(80,40)self.endPushButton.clicked.connect(self.gameover)self.pauseMusicButton=QtWidgets.QPushButton(text="音乐????",clicked=self.handle_music_button)self.pauseMusicButton.setFixedSize(80,40)self.settingslayout.addWidget(self.startPushButton,0,0)self.settingslayout.addWidget(self.textBrowser,1,0)self.settingslayout.addWidget(self.killBrowser,2,0)self.settingslayout.addWidget(self.escapeBrowser,3,0)self.settingslayout.addWidget(self.remaintimeText,4,0)#self.settingslayout.addWidget(self.endPushButton,5,0)self.settingslayout.addWidget(self.pauseMusicButton,6,0)四、效果展示
可能是图片的素材找的不是很好!所以看起来框框是界限分明的!自行优化哈~
Part 1 界面初始化
Part 2 点击游戏开始按钮
倒计时开始——没打中
Part 3 打中地鼠
以上就是关于“Python中怎么用Pygame实现欢乐打地鼠游戏”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。