Python 用pygame 做一个游戏的开始界面(小白第一篇博客)
Python 用pygame 做一个游戏的开始界面(小白第一篇博客)
主要功能实现
本篇文章主要是实现了一个游戏开始界面的两个功能:
1,将鼠标放到”开始游戏“或”结束游戏“字样是 字样由黑色变为红色
1,可以实现点击开始游戏,游戏自动跳转到游戏界面(即,可以运行游戏的第一关了)
2,点击结束游戏,游戏退出。
素材准备
首先准备素材,为了方便起见,我从艺术字网上索取了我个人觉得比较好看的字体(开始游戏和结束游戏,背景是白色,算了我懒得扣成透明背景。
各图片的命名参考如上图,对应代码而已。
代码参考
import pygame
pygame.init()
ck = pygame.display.set_mode((800,600)) # 游戏窗口
pygame.display.set_caption("拳皇双截龙") # 给窗口取个名 我小时候喜欢双截龙和拳皇
clock = pygame.time.Clock() # 游戏刷新速度(我个人这么理解)
start_ck = pygame.Surface(ck.get_size()) # 充当开始界面的画布
start_ck2 = pygame.Surface(ck.get_size()) # 充当第一关的画布界面暂时占位(可以理解为游戏开始了)
start_ck = start_ck.convert()
start_ck2 = start_ck2.convert()
start_ck.fill((255,255,255)) # 白色画布1(开始界面用的)
start_ck2.fill((0,255,0))
# 加载各个素材图片 并且赋予变量名
i1 = pygame.image.load("./images/s1.png")
i1.convert()
i11 = pygame.image.load("./images/s2.png")
i11.convert()i2 = pygame.image.load("./images/n2.png")
i2.convert()
i21 = pygame.image.load("./images/n1.png")
i21.convert()i3 = pygame.image.load('./images/m2.png')
i3.convert()
i31 = pygame.image.load('./images/m1.png')
i31.convert()bg = pygame.image.load('./images/bj.jpg')
bg.convert()# 以下为选择开始界面鼠标检测结构。
n1 = True
while n1:clock.tick(30)buttons = pygame.mouse.get_pressed()x1, y1 = pygame.mouse.get_pos()if x1 >= 227 and x1 <= 555 and y1 >= 261 and y1 <=327:start_ck.blit(i11, (200, 240))if buttons[0]:n1 = Falseelif x1 >= 227 and x1 <= 555 and y1 >= 381 and y1 <=447:start_ck.blit(i21, (200, 360))if buttons[0]:pygame.quit()exit()elif x1 >= 227 and x1 <= 555 and y1 >= 501 and y1 <=567:start_ck.blit(i31, (200, 480))else:start_ck.blit(i1, (200, 240))start_ck.blit(i2, (200, 360))start_ck.blit(i3, (200, 480))ck.blit(start_ck,(0,0))pygame.display.update()# 下面是监听退出动作# 监听事件for event in pygame.event.get():# 判断事件类型是否是退出事件if event.type == pygame.QUIT:print("游戏退出...")# quit 卸载所有的模块pygame.quit()# exit() 直接终止当前正在执行的程序exit()ck.blit(start_ck2,(0,0))
pygame.display.update()# 以下可以写第一关的代码了
n2 = True
while n2:clock.tick(30)ck.blit(start_ck2, (0, 0))start_ck2.blit(bg,(0,0))pygame.display.update()for event in pygame.event.get():# 判断事件类型是否是退出事件if event.type == pygame.QUIT:print("游戏退出...")# quit 卸载所有的模块pygame.quit()# exit() 直接终止当前正在执行的程序exit()
运行效果
下面的这个散打运动员图片就是游戏开始了。
分析
之前做过一个类似的,不过点击开始游戏之后画面倒是能跳转,但是鼠标放到其他区域依然会显示字体,所以就自己琢磨了这样一个模式,用两套while 循环,每套循环里都配置上监听事件,由于代码是从上至下运行,所以只要第一个while Ture 循环没有关闭,第二个 循环就不会执行,第一个循环结束之前讲画布2 (也就是start_ck2,画到窗口上)这样我的困难也就解决了。(我毕竟不是程序员,我是做生物技术的,以上代码在格式上和命名规范上可能会存在小小不合规,但不影响测试结果,希望大家批评指正。)
Python 用pygame 做一个游戏的开始界面(小白第一篇博客)相关推荐
- 我的第一篇博客:Python爬取新浪财经股票页面 并用matplotlib可视化输出结果
(由于疫情在家闲着,开学至少得等到四月份,便在上个星期动起了学习python的念头,凭借着大一C语言微薄的基础草草学习语法后便开始了学写爬虫.跟着教学视频爬了几个静态网站后便开始尝试爬动态网站,同时也 ...
- Python中的TCP的客户端UDP学习----第一篇博客
Python中的TCP的客户端&UDP学习--第一篇博客 PS: 每日的怼人句子"我真想把我的脑子放到你的身体里,让你感受一下智慧的光芒" 先说UDP流程 发送: 创建套接 ...
- 如果你需要用Python搞个二维码,那应该收藏这篇博客
文章目录 ⛳️ 交代背景 ⛳️ pyqrcode 实现二维码 ⛳️ qrcode 实现二维码 ⛳️ MyQR 实现二维码 ⛳️ Amazing-QR 实现二维码 ⛳️ 交代背景 作为一名合格的 Pyt ...
- (人生中的第一篇博客) - 如何更改C盘用户名 - 更改C盘用户名后的注意事项 - 对Pycharm中错误 No Python at ‘C:\Users\...\python.exe‘ 的处理
2018年电脑刚买回来很天真把管理员名称搞成了汉字,一直没有感到哪里不好,最近用的软件越来越杂,今天要装CCS,告诉我说因为这个汉字(全角字符)的原因,不能安装.我没有考虑后果的情况下动了注册表,重启 ...
- 一个计算机系学生的第一篇博客
首先,欢迎关注我的github 文章目录 1. 我为什么要写博客 2. 我打算如何去写博客 3. 深夜感慨 首先自我介绍一下,我是中国人民大学信息学院的学生,专业为数据科学与大数据技术,日常使用最多的 ...
- 我的第一篇博客_在Linux下用C++编写的德州扑克游戏
文章目录 序言 抽象思路 类的抽象 牌类(Card) 一组牌(GroupCards) 牌堆(DeckCards) 牌堆类设计 初始化卡牌 洗牌 与手牌公共牌的关系 手牌(HandCards) 公共牌( ...
- 一个大龄FPGA工程师在CSDN发的第一篇博客
我做FPGA开发9年多了,算是一个大龄工程师了.期间接触过一些项目管理和技术支持之类的工作,不知道为什么,脱离研发做这些工作我总觉得不踏实,也许天生就适合死磕技术.就是不知道继续这么死磕下去会怎么样, ...
- 第一篇博客:聊一聊我准备用这个做些什么吧
第一次发表博客,不知所云,分享一下我对生活.工作的看法,以及对人生的展望规划,觉得志同道合的兄弟,可以邮件私聊我,交个朋友,喝点小酒,聊聊天笑谈人生. <一>首先感谢博客园的工作人员们的辛 ...
- 想学Python的小东的第一篇博客
记录一下今天学习怎么看别人博客总结出解决刚安装的虚拟机VMware15中Ubuntu18无法连接网络和无法使用ifconfig查看本机IP地址的问题 用博客记录一下今天学习的东西,并且来了解一下Mar ...
最新文章
- C++编程思想重点笔记(上)
- virilog 模块之间的层次关系_软件工程导论 期末复习题
- [家里蹲大学数学杂志]第418期南开大学2013年实变函数期末考试试题参考解答
- pip安装python模块不成功时,你可以尝试这样做
- a73*2+a53*2指的是什么_什么言四字词
- 给数据表中的字段添加约束
- java maven 读取配置文件_Java项目和maven项目中如何获取设置配置文件中的属性
- Windows Server 2016-批量设置用户下次登陆须更改密码
- layer.js之回调销毁对话框
- python cad模块_Python cad包_程序模块 - PyPI - Python中文网
- NTL密码算法开源库(数论库)代码分析项目--综述
- 盘点 10大 数据库!
- 今天女朋友问我多线程是什么?送命题?
- PoE供电交换机的四种连接方式
- 第六届全国计算机学科博士后论坛,首届全国计算机学科博士后论坛在清华大学圆满举行...
- 斐波那契数列(前30)Python
- MySQL5.7自带分词搜索使用
- 线性代数中的余子式、代数余子式、行列式
- qq分享和空间分享弹出对话框或Popu…
- 计算机辅助设计高级绘图员技能鉴定试题,计算机辅助设计高级绘图员技能鉴定试卷.doc...