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使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 Python
python实现根据月份和日期得到星座的方法
Mar 27 Python
python类和继承用法实例
Jul 07 Python
在Python的Django框架中加载模版的方法
Jul 16 Python
Python+微信接口实现运维报警
Aug 27 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
基于Python函数和变量名解析
Jul 19 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
Python操作Jira库常用方法解析
Apr 10 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
python从ftp获取文件并下载到本地
Dec 05 Python
Python opencv缺陷检测的实现及问题解决
Apr 24 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 Date/Time 类型
2008/03/26 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
Python编程入门的一些基本知识
2015/05/13 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
信息管理专业学生自荐信格式
2013/09/22 职场文书
2015年防汛工作总结
2015/05/15 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python
Golang并发工具Singleflight
2022/05/06 Golang