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实现连接mongodb的方法
May 08 Python
深入学习Python中的装饰器使用
Jun 20 Python
浅谈python配置与使用OpenCV踩的一些坑
Apr 02 Python
如何优雅地改进Django中的模板碎片缓存详解
Jul 04 Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
May 11 Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 Python
如何在python中实现线性回归
Aug 10 Python
python基础之匿名函数详解
Apr 21 Python
手残删除python之后的补救方法
Jun 26 Python
Python基础数据类型tuple元组的概念与用法
Aug 02 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
第八节 访问方式 [8]
2006/10/09 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
python机器学习库常用汇总
2017/11/15 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
Django视图扩展类知识点详解
2019/10/25 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
python3下pygame如何实现显示中文
2020/01/11 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
傲盾软件面试题
2015/08/17 面试题
高校毕业生自我鉴定
2013/10/27 职场文书
个人简历中的自我评价范例
2013/10/29 职场文书
2014中考励志标语
2014/06/05 职场文书
付款承诺函范文
2015/01/21 职场文书
上课说话检讨书
2015/01/27 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
2015年医院创卫工作总结
2015/04/22 职场文书
学校财务管理制度
2015/08/04 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
实现一个简单得数据响应系统
2021/11/11 Javascript