Python中怎么用Pygame实现欢乐打地鼠游戏
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"Python中怎么用Pygame实现欢乐打地鼠游戏"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我
千家信息网最后更新 2026年11月03日Python中怎么用Pygame实现欢乐打地鼠游戏
这篇"Python中怎么用Pygame实现欢乐打地鼠游戏"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Python中怎么用Pygame实现欢乐打地鼠游戏"文章吧。
游戏规则:
击中一个积一分,规定时间内打中几个就是几个,逃离几个就是几个都有专门的记录。游戏初始设
定是30秒,可自己设置时间的哈,打中的越多越好, 还可以跟小伙伴儿比赛。
一、准备中
1)素材准备(音乐+背景+图标等)

这些都是可以自己进行修改的啦!其实随便修改下图片素材就可以成为一款新游戏的啦!比如平底
锅打灰太狼:

再比如猫抓老鼠等很简单的啦!换掉地鼠的图案,然后锤子换成平底锅嘛~
二、环境安装
本文涉及的环境:Python3、Pycharm、Pygame、Pyqt5以及部分自带模块。
模块安装:大家习惯使用什么用什么,使用镜像源安装更快速不容易报错。
pip install +模块名 或带豆瓣镜像源 pip install -i https://pypi.douban.com/simple/ +模块名
三、开始敲代码
1)导入模块
import sysimport osfrom PyQt5 import QtCorefrom PyQt5 import QtWidgetsfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *from PyQt5.QtSql import QSqlDatabase, QSqlQueryimport randomimport pygame
2)不同的图片设置
运行代码出的地鼠图片、被砸之后的地鼠,然后砸下去、 没砸下去的锤子图片分别是不一样的状态。
class virus(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) def kill(self): try: if self.flag == 1: self.setStyleSheet("QPushButton{border-image: url(sucai/killvirus2.png)}") # 被砸 global score score += 1 self.flag = 0 except: pass def mousePressEvent(self, event): self.setCursor(QCursor(QPixmap(r"sucai/down.png"))) self.upTime.start(100) self.kill() def up(self): self.setCursor(QCursor(QPixmap(r"sucai/up.png")))3)界面头标、标题等。
class TopWindow(QWidget): def __init__(self, parent=None): super().__init__(parent) self.virusnum = 0 self.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 = None self.user = None global score score = 04)音乐设置
运行代码即可有背景音乐、还可以点击暂停、静音等等。
# 播放音乐 pygame.init() pygame.mixer.music.load(r"sucai/Game.mp3") pygame.mixer.music.play() def handle_music_button(self): btn = self.sender() if btn is not None: text = btn.text() if text == "音乐????": 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实现欢乐打地鼠游戏"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
地鼠
音乐
内容
图片
时间
模块
欢乐
代码
就是
素材
计时器
不同
右侧
图标
地洞
平底锅
按钮
控件
文章
环境
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
耶加雪菲
新华互联网科技
中国互联网科技工作委员会毛军
重生之互联网科技帝国
互联网科技会
广州宏创互联网科技
壹账通互联网科技
奇酷互联网络科技公司
广西互联网科技公司
科技类的互联网平台
哈尔滨新华互联网科技学院
北京大学互联网科技怎么样
字节跳动和互联网科技
佳云科技和互联网广告
互联网5g黑科技有哪些
爱医互联网络科技
互联网科技机房
银川新华互联网科技学校原画
安徽零酒互联网科技有限公司
科技互联网公司两年变化
伟宏互联网科技
关于新基建和互联网科技
衡水科技产业互联网平台
成都玖崟互联网科技有限公司乐商圈怎么样
栖莱科技互联网股份有限公司
合肥互联网科技公司公章图片
伍佰万互联网科技怎么赚钱
互联网风格科技公司名称
广州有谷有贝互联网科技有限公司
银川新华互联网科技学校是国营吗