python游戏开发Pygame框架


Posted in Python onApril 22, 2022

1.最小开发框架代码

import sys 
import pygame
pygame.init() 
size=w,h = (800,600)
screen = pygame.display.set_mode(size) 
pygame.display.set_caption("hello world") 
screen.fill((255,255,255))
while True:
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            sys.exit()
    pygame.display.update() 

2.关键代码介绍

sys和pygame模块

import sys #python的标准库,对内部各功能模块进行初始化创建,系统模块
import pygame #pygame是跨平台Python模块,专门为电子游戏设计,包含图像、声音等。

初始化init()及设置

pygame.init() #电脑调用接口,基础功能的检查(硬件环境)初始化
  • pygame.init() 就是检查电脑上的一些硬件调用接口、基础功能是否有问题,如果有,则会在程序运行之前进行反馈,方便排查。简单来说就是对电脑调用的接口进行初始化。

屏幕大小、标题、颜色设置

size=w,h = (800,600) 
screen = pygame.display.set_mode(size) #pygame.display.set_mode 一个二值元组,分别表示宽度和高度。
pygame.display.set_caption("hello world") #括号内为窗口的标题内容
screen.fill((255,255,255)) #屏幕的颜色,填充背景色,其中的参数为(R,G,B),范围为:0~~255,用整数表示。
  • pygame.display.set_mode(resolution=(0,0), flags=0, depth=0) -> Surface(对象)。
  • resolution 参数是一个二元组,表示宽和高。
  • flags 参数是附件选项的集合。
  • flags 参数指定你想要的显示类型。例如:全屏显示、双缓冲模式、硬件加速等等。
  • depth 参数表示使用的颜色深度。

通常来说,是不需要传递 depth 参数。因为默认 Pygame 会根据当前操作系统选择最好和最快的颜色深度。

python游戏开发Pygame框架

事件循环

while True:
    for event in pygame.event.get(): #遍历事件列表
  • while True 无限循环,直到从键盘或鼠标触动事件在退出循环。
  • pygame.event.get() 从事件队列中取出事件(列表),并从队列中删除该事件,例如:键盘按下是一个事件
  • 在pygame中,所用事件都存放在事件列表中,使用pygame.event.get()可以取出一个事件。

退出游戏

if event.type == pygame.QUIT: #pygame.QUIT == 12 
            sys.exit() # 退出游戏
  • event.type 获取事件类型,并逐个响应
  • pygame.QUIT是pygame中定义的退出事件常量

窗口刷新:

pygame.display.update() #对显示窗口进行更新,默认窗口全部重绘

注意事项:

  • 要用pygame制作游戏代码时,一般用Pycharm进行编写代码,而不用python。
  • 要添加一些事件时,直接在for循环中添加相应的代码。
  • 使用Pycharm进行编程时一定要配置环境变量,否则会运行报错。
  • 在用Pycharm进行编程时,也可以使用类、继承、多态等方法。

到此这篇关于基于python 的Pygame最小开发框架的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
Python 自动安装 Rising 杀毒软件
Apr 24 Python
Python运用于数据分析的简单教程
Mar 27 Python
python如何拆分含有多种分隔符的字符串
Mar 20 Python
Python Learning 列表的更多操作及示例代码
Aug 22 Python
Python数据集切分实例
Dec 08 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
python利用Tesseract识别验证码的方法示例
Jan 21 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
Feb 21 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
解决TensorFlow调用Keras库函数存在的问题
Jul 06 Python
python中的random模块和相关函数详解
Apr 22 #Python
Python写情书? 10行代码展示如何把情书写在她的照片里
Apr 21 #Python
微信小程序调用python模型
Apr 21 #Python
使用python绘制分组对比柱状图
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 #Python
Python尝试实现蒙特卡罗模拟期权定价
Python matplotlib绘制条形统计图 处理多个实验多组观测值
You might like
基于mysql的bbs设计(五)
2006/10/09 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
python在控制台输出进度条的方法
2015/06/20 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
大二学生学习个人自我评价
2014/01/19 职场文书
个人党性剖析材料
2014/02/03 职场文书
高中军训感言200字
2014/02/23 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
物流专业自荐信
2014/05/23 职场文书
2014年四风问题个人对照自查剖析材料
2014/09/15 职场文书
销售人才自我评价范文
2014/09/27 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python