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中实现远程调用(RPC、RMI)简单例子
Apr 28 Python
Python单例模式实例分析
Jan 14 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
Python实现读取文件最后n行的方法
Feb 23 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 Python
Python排序搜索基本算法之堆排序实例详解
Dec 08 Python
Python with语句和过程抽取思想
Dec 23 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
Java byte数组操纵方式代码实例解析
Jul 22 Python
pycharm-professional-2020.1下载与激活的教程
Sep 21 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 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
PHP伪造referer实例代码
2008/09/20 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
Python中除法使用的注意事项
2014/08/21 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
Django重设Admin密码过程解析
2020/02/10 Python
python将unicode和str互相转化的实现
2020/05/11 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
女性时尚网购:Chic Me
2019/07/30 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
优秀中专生推荐信
2013/11/17 职场文书
教师求职自荐书
2014/06/14 职场文书
财务会计专业自荐书
2014/06/30 职场文书
受伤赔偿协议书
2014/09/24 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
家庭贫困证明
2015/06/16 职场文书
2015入党自传书范文
2015/06/26 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
Python基础知识学习之类的继承
2021/05/31 Python
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
python开发飞机大战游戏
2021/07/15 Python