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代码依赖的库的实现代码
Aug 09 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
Python 文件处理注意事项总结
Apr 10 Python
python机器学习实战之最近邻kNN分类器
Dec 20 Python
详解用python实现简单的遗传算法
Jan 02 Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
python3使用QQ邮箱发送邮件
May 20 Python
python批量爬取下载抖音视频
Jun 17 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
解决tensorflow读取本地MNITS_data失败的原因
Jun 22 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 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
香妃
2021/03/03 冲泡冲煮
PHP错误和异长常处理总结
2014/03/06 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
2021/01/29 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
总经理岗位职责
2013/11/09 职场文书
校园元旦活动总结
2014/07/09 职场文书
公务员政审材料范文
2014/12/23 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书