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下载文件时显示下载进度的方法
Apr 02 Python
python网络编程之文件下载实例分析
May 20 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python 返回列表中某个值的索引方法
Nov 07 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
python禁用键鼠与提权代码实例
Aug 16 Python
详解python uiautomator2 watcher的使用方法
Sep 09 Python
Python图像处理库PIL的ImageDraw模块介绍详解
Feb 26 Python
python定时截屏实现
Nov 02 Python
Python Django模型详解
Oct 05 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
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
phpwind放自动注册方法
2006/12/02 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
python跳出双层for循环的解决方法
2019/06/24 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
注塑工厂厂长岗位职责
2013/12/02 职场文书
社区安全检查制度
2014/02/03 职场文书
《胡杨》教学反思
2014/02/16 职场文书
幼儿园元旦家长感言
2014/02/27 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android