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 做一个游戏的开始界面(小白第一篇博客)相关推荐

  1. 我的第一篇博客:Python爬取新浪财经股票页面 并用matplotlib可视化输出结果

    (由于疫情在家闲着,开学至少得等到四月份,便在上个星期动起了学习python的念头,凭借着大一C语言微薄的基础草草学习语法后便开始了学写爬虫.跟着教学视频爬了几个静态网站后便开始尝试爬动态网站,同时也 ...

  2. Python中的TCP的客户端UDP学习----第一篇博客

    Python中的TCP的客户端&UDP学习--第一篇博客 PS: 每日的怼人句子"我真想把我的脑子放到你的身体里,让你感受一下智慧的光芒" 先说UDP流程 发送: 创建套接 ...

  3. 如果你需要用Python搞个二维码,那应该收藏这篇博客

    文章目录 ⛳️ 交代背景 ⛳️ pyqrcode 实现二维码 ⛳️ qrcode 实现二维码 ⛳️ MyQR 实现二维码 ⛳️ Amazing-QR 实现二维码 ⛳️ 交代背景 作为一名合格的 Pyt ...

  4. (人生中的第一篇博客) - 如何更改C盘用户名 - 更改C盘用户名后的注意事项 - 对Pycharm中错误 No Python at ‘C:\Users\...\python.exe‘ 的处理

    2018年电脑刚买回来很天真把管理员名称搞成了汉字,一直没有感到哪里不好,最近用的软件越来越杂,今天要装CCS,告诉我说因为这个汉字(全角字符)的原因,不能安装.我没有考虑后果的情况下动了注册表,重启 ...

  5. 一个计算机系学生的第一篇博客

    首先,欢迎关注我的github 文章目录 1. 我为什么要写博客 2. 我打算如何去写博客 3. 深夜感慨 首先自我介绍一下,我是中国人民大学信息学院的学生,专业为数据科学与大数据技术,日常使用最多的 ...

  6. 我的第一篇博客_在Linux下用C++编写的德州扑克游戏

    文章目录 序言 抽象思路 类的抽象 牌类(Card) 一组牌(GroupCards) 牌堆(DeckCards) 牌堆类设计 初始化卡牌 洗牌 与手牌公共牌的关系 手牌(HandCards) 公共牌( ...

  7. 一个大龄FPGA工程师在CSDN发的第一篇博客

    我做FPGA开发9年多了,算是一个大龄工程师了.期间接触过一些项目管理和技术支持之类的工作,不知道为什么,脱离研发做这些工作我总觉得不踏实,也许天生就适合死磕技术.就是不知道继续这么死磕下去会怎么样, ...

  8. 第一篇博客:聊一聊我准备用这个做些什么吧

    第一次发表博客,不知所云,分享一下我对生活.工作的看法,以及对人生的展望规划,觉得志同道合的兄弟,可以邮件私聊我,交个朋友,喝点小酒,聊聊天笑谈人生. <一>首先感谢博客园的工作人员们的辛 ...

  9. 想学Python的小东的第一篇博客

    记录一下今天学习怎么看别人博客总结出解决刚安装的虚拟机VMware15中Ubuntu18无法连接网络和无法使用ifconfig查看本机IP地址的问题 用博客记录一下今天学习的东西,并且来了解一下Mar ...

最新文章

  1. C++编程思想重点笔记(上)
  2. virilog 模块之间的层次关系_软件工程导论 期末复习题
  3. [家里蹲大学数学杂志]第418期南开大学2013年实变函数期末考试试题参考解答
  4. pip安装python模块不成功时,你可以尝试这样做
  5. a73*2+a53*2指的是什么_什么言四字词
  6. 给数据表中的字段添加约束
  7. java maven 读取配置文件_Java项目和maven项目中如何获取设置配置文件中的属性
  8. Windows Server 2016-批量设置用户下次登陆须更改密码
  9. layer.js之回调销毁对话框
  10. python cad模块_Python cad包_程序模块 - PyPI - Python中文网
  11. NTL密码算法开源库(数论库)代码分析项目--综述
  12. 盘点 10大 数据库!
  13. 今天女朋友问我多线程是什么?送命题?
  14. PoE供电交换机的四种连接方式
  15. 第六届全国计算机学科博士后论坛,首届全国计算机学科博士后论坛在清华大学圆满举行...
  16. 斐波那契数列(前30)Python
  17. MySQL5.7自带分词搜索使用
  18. 线性代数中的余子式、代数余子式、行列式
  19. qq分享和空间分享弹出对话框或Popu…
  20. 计算机辅助设计高级绘图员技能鉴定试题,计算机辅助设计高级绘图员技能鉴定试卷.doc...

热门文章

  1. servlet的认识和了解(3)
  2. 八图片在线图片设置付费
  3. HTML5 中 40 个最重要的技术点
  4. Spark SQL_JZZ158_MBY
  5. Delphi Hook K3
  6. linux gic驱动
  7. 2022.04.21【日常维护】|服务器存储清理浅谈
  8. Daily Scrum Meeting 11.12
  9. 雷军造车,没有“捷径”
  10. java-jar基础应用