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的一些用法分享
Oct 07 Python
Python自动扫雷实现方法
Jul 25 Python
python对象及面向对象技术详解
Jul 19 Python
Python变量和字符串详解
Apr 29 Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 Python
python matlibplot绘制3D图形
Jul 02 Python
Python使用字典的嵌套功能详解
Feb 27 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
python3实现简单飞机大战
Nov 29 Python
Django中使用Celery的方法步骤
Dec 07 Python
python元组打包和解包过程详解
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
PHP6新特性分析
2016/03/03 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
Python模块学习 re 正则表达式
2011/05/19 Python
python单线程实现多个定时器示例
2014/03/30 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
Python中的with...as用法介绍
2015/05/28 Python
python中的字典操作及字典函数
2018/01/03 Python
python 默认参数相关知识详解
2019/09/18 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
非常漂亮的CSS3百叶窗焦点图动画
2016/02/24 HTML / CSS
美国校服网上商店:French Toast
2019/10/08 全球购物
体育课课后反思
2014/04/24 职场文书
活动倡议书范文
2014/05/13 职场文书
实习护士自荐信
2014/06/21 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
客服专员岗位职责
2015/02/10 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS